我需要帮助找到一个解决问题的方法,React,Firebase,For Loop [关闭]
Posted
技术标签:
【中文标题】我需要帮助找到一个解决问题的方法,React,Firebase,For Loop [关闭]【英文标题】:I need of help in found one solution on problem, React,Firebase,For Loop [closed] 【发布时间】:2019-07-16 12:24:24 【问题描述】:问题的错误:TypeError: _this2.state.navigation[i] is undefined
【问题讨论】:
setState
是异步的,所以你不能做this.setState( navigation: data.val() )
并期望它在下面的语句中设置在this.state
中。请以文本格式而不是图像格式包含您的代码。
上面的代码请看
请以文本格式而不是图像格式包含您的代码。
data.val() 执行时间过长。所以在效果 this.setState(navigation: data.val()) 总是未定义的,因为它是以异步方式执行的。为了让它按预期执行,我建议你使用 promises javascript.info/promise-basics
【参考方案1】:
如果你想这样做,你应该使用setState
中的回调,因为它是异步的。请参阅以下链接以获取更多信息:
https://reactjs.org/docs/react-component.html#setstate
另一种选择是只设置一次状态而不是多次设置状态。您不需要将所有这些信息放在状态中,只是为了更新一个值。即使您确实需要所有这些信息,您也可以使用一个 setState
呼叫而不是像您正在做的 3 个呼叫。只需使用您要设置的值设置变量并进行一次更新。
【讨论】:
以上是关于我需要帮助找到一个解决问题的方法,React,Firebase,For Loop [关闭]的主要内容,如果未能解决你的问题,请参考以下文章