每当执行任何功能(例如扫描Qr代码和存储数据)时,我都使用componentDidUpdate()方法在屏幕上显示更新的数据。但是在网上搜索之后,我发现在componentDidUpdate()中调用this.setState会创建无限循环。我试图通过在上述方法中包含prevState来解决此问题,但失败了。下面是我的代码,以获取更多详细信息。没有componentDidUpdate()的帮助,如何更新来自Asyncstorage的状态?
SELECT SUM(value)...
任何帮助或建议都会有所帮助,谢谢。
答案 0 :(得分:1)
更新componentDidUpdate
中的状态将触发另一个componentDidUpdate
调用,因此您应限制调用setState()
。例如:
componentDidUpdate(prevProps, prevState) {
// Only update state if list is empty
if (prevState.list.length === 0) {
try {
AsyncStorage.getItem('Data').then((value) => {
this.setState({
list: JSON.parse(value)
})
})
} catch (err) {
}
}
}