React Native选择图片时出现iter[Symbol.iterator]类型错误如何解决
问题修复方案
你遇到的[TypeError: undefined is not an object (evaluating 'iter[Symbol.iterator]')]报错,核心原因是App组件中imageUris状态初始化时未赋值,首次添加图片时展开运算符无法对undefined执行迭代操作。
修复步骤
- 第一步:给
imageUris设置初始空数组
修改App入口文件的useState初始化逻辑:
// 原来的错误写法 const [imageUris, setImageUris] = useState(); // 修改为 const [imageUris, setImageUris] = useState([]);
注:你在ImageInputList组件中给
imageUris设置的默认值[]仅作用于子组件内部渲染逻辑,App组件中操作的是自身的状态,所以仅设置子组件默认参数无法解决报错。
- 第二步(可选优化,避免闭包导致的状态更新异常):将状态更新改为函数式写法
修改App中的handleAdd和handleRemove方法:
const handleAdd = (uri) => { setImageUris(prevUris => [...prevUris, uri]) } const handleRemove = uri => { setImageUris(prevUris => prevUris.filter(imageUri => imageUri !== uri)) }
内容的提问来源于stack exchange,提问作者Vuyi
相关产品推荐
相关产品推荐

