【问题标题】:React Native rendering twiceReact Native 渲染两次
【发布时间】:2017-10-16 11:50:33
【问题描述】:

当从新页面中的 AsyncStorage 调用状态时。我发现错误,然后我尝试 console.log 渲染函数中的状态,我发现 console.log 两次,第一个控制台为空,第二个是来自 异步存储。为什么会发生?如何解决这个问题?

【问题讨论】:

  • 添加一些代码,以便我们为您提供帮助。
  • Reacts 的工作是在组件状态发生变化时重新渲染组件。由于您正在对设备上的某些数据发出异步请求,因此您的组件会在请求完成之前安装。它将 console.log null 然后当接收到数据时,它将重新渲染,并再次运行控制台日志以显示数据。
  • 这是正常的反应行为。
  • @DanielZuzevich 好的,谢谢先生的回答。

标签: javascript reactjs react-native


【解决方案1】:

React 将根据需要多次调用 render 以反映状态对象上的更改,如果您正在异步获取数据并更新状态,您将在组件第一次渲染时看到一条 console.log 消息,然后再一次一旦获取数据并更新状态。

换句话说,按预期工作,如果您只想记录任何消息一次,请尝试将此行移至组件构造函数或 componentDidMount 方法。

【讨论】:

  • 非常感谢先生,我了解 react 的工作原理
猜你喜欢
  • 2020-08-16
  • 2021-09-09
  • 2022-11-26
  • 2021-11-14
  • 1970-01-01
  • 2019-05-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多