reactjs - 未捕获的 TypeError:formData 不可迭代
问题描述
我正在尝试使用钩子从不同的子组件收集和创建一个对象。
有多个子组件将更新父组件中的状态并创建一个主对象以将其发送到 API。
// creating a hook
const [formData, setFormData] = useState({});
// Getting data from the child and setting it using a hook set method
const deliveryContactDetails = deliveryData => {
contacts.push(deliveryData);
};
const productNameData = productData => {
setFormData(...formData, productData);
}
const onboardDetailsData = detailsData => {
setFormData(...formData, detailsData)
}
// Using ref to call the child and send data to parent
useImperativeHandle(ref,() => ({
sendData() {
productRef.current.sendData()
detailsRef.current.sendData()
deliveryRef.current.map(
ref => ref.current.sendData()
);
setFormData(...formData, { contacts: contactArray });
props.saveItem(tempObj);
}
}));
在控制台中获取错误
corporateOnboardingDetails.js:137 未捕获类型错误:formData 在 Object.productNameData [as saveProduct] 处不可迭代(corporateOnboardingDetails.js:137)
解决方案
您试图将对象作为参数传播给函数调用。您需要将对象传递给setFormData
函数(您忘记了括号{}
)。
const productNameData = productData => {
setFormData({...formData, productData});
}
const onboardDetailsData = detailsData => {
setFormData({...formData, detailsData});
}
推荐阅读
- django - Django - 管理页面登录也登录到用户身份验证
- ios - iOS - 如何检查手电筒/手电筒/闪光灯的开/关状态
- java - 如何在 servlet 中从 Web 服务获取数据
- java - 使用java在json中使用多个键获取键值
- java - 使用 Maven 安装和部署上传 airtifact 到 nexus
- c# - 为 tablerepeater 过滤 ireader
- pytorch - 为什么我无法安装新版本的 Pytorch?
- react-native - React Native Expo 应用程序 - 无法在 iOS 模拟器中打开应用程序
- java - 关于java中库文档的担忧
- python - 使用分类交叉熵的类权重时遇到问题