我需要帮助找到一个解决问题的方法,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 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

React - 多个 Axios 请求

苹果电脑windows系统搜不到自家wifi,怎么解决?

react-native-web 的反应导航?

React - 在 componentDidMount 中访问上下文

react-slick 没有滑动效果

如何解决这个问题:对象作为React Child无效