我正试图通过从AsyncStorage获取值来呈现数据数组。但首先调用render,并在我试图映射数组时显示未定义的映射。代码如下:
null
const [myCosts, setMyCosts] = useState([]);
useEffect(() => {
console.log('useeffect')
readData();
}, [])
const readData = async () => {
try {
const expenseValue = await AsyncStorage.getItem('COSTLIST')
setMyCosts(expenseValue);
} catch (e) {
alert('Failed to fetch the data from storage')
}
}
if (myCosts === []) {
return (
<View style={styles.activityIndicatorContainer}>
<ActivityIndicator animating={true}/>
</View>
);
} else {
return(
<View>
{myCosts.map(cost => {
return (
<Text style={{backgroundColor:'#f2e3df',color:'#000',padding:10}}>
{cost.name}
</Text>
)
})
}
</View>
)
}
null
我也加了条件。但它仍然给出了错误。还能做什么?
当你可以做这样的事情时,为什么你要设置状态;useState set方法是一个异步调用,它可能不会立即反映更改
let myCosts = [];
useEffect(() => {
readData();
}, [])
const readData = async () => {
try {
myCosts = await AsyncStorage.getItem('COSTLIST') || [];
} catch (e) {
alert('Failed to fetch the data from storage')
}
}
if (myCosts.length) {
return (
<View style={styles.activityIndicatorContainer}>
<ActivityIndicator animating={true}/>
</View>
);
} else {
return(
<View>
{myCosts.map(cost => {
return (
<Text style={{backgroundColor:'#f2e3df',color:'#000',padding:10}}>
{cost.name}
</Text>
)
})
}
</View>
)
}
在将AsyncStorage设置为State之前,您需要确保它不为空。
这应该可以帮助您修复错误。
const expenseValue = await AsyncStorage.getItem('COSTLIST')
setMyCosts(expenseValue || []);
但是,您希望确保在AsyncStorage
中正确设置了CostList
以便它不会返回undefined
问题内容: 当我尝试使用Promise从AngularUI-Bootstrap获取typeahead值时,出现以下错误。 我的HTML标签是: 用我的功能执行以下操作: 我不明白AngularUI- Bootstrap抱怨什么是不确定的。如果我删除最顶部的注释,则这些值会很好显示。中的输出还返回数组中我期望的所有值。 我缺少什么会导致AngularUI-Bootstrap看不到返回的数组? 问题答
因此,我现在使用的代码给了我一个TypeError:无法为我的ping命令读取undefined的属性'send',然后是TypeError:无法为我的ban命令读取undefined的属性'users',由于我做了什么或忘记了做什么,我还有其他命令不能正常工作,代码一直在工作,直到我向代码添加了权限,然后它就走下坡路了,我不知道在权限之前和之后哪里不工作/它是如何工作的,但后来只是停止工作,我不
我试图只显示一个覆盖,如果我的搜索输入包含任何文本。 这是我的模板,其中我的输入字段是: : 当我在控制台中进行检查时,会更新我在输入字段中写入的任何文本。 然后,我尝试将此变量传递给另一个组件,该组件保存我的overlay div: Overlay.vue: 然而,这给我下面的错误: [Vue warn]:呈现错误:“TypeError:无法读取未定义的属性'length'” 我到底做错了什么?
我是新来的node.js.我正在尝试创建一个注册页面,并使用mysql将输入的值保存在数据库中。 我可以通过在请求头上传递参数来实现这一点。但是,在请求头中传递参数始终不是一个好主意。所以尝试在请求体上传递参数。 我使用邮差测试我的node.js服务。 下面是我的演示应用程序的github链接 https://github.com/debasish283/node_gulp 我还需要做什么来传递请
试图从firebase导入数据时,我被抛出了这个错误:REACT:TypeError:无法读取未定义的属性(读取“map”)。 制定一个项目,监控云功能的运行状况以及它们是否正常工作。任何帮助都将不胜感激。:) app.js-地图功能app.js{ } firebase.js: 卡片/索引。js
我在我的Gatsby应用程序中得到了这个错误,该应用程序为作者提取places数据。当author.social的map()点为null时,该错误将显示 谢谢