我不明白componentDidMountcomponentDidUpdate之间有什么区别

我看到一些计数器应用程序使用setState方法来增加componentDidMount中的计数值,所以如果我们在componentDidUpdate中写入setState呢?

我们什么时候应该使用componentDidMountcomponentDidUpdate

推荐答案

the docs on the component lifecycle开始:

  • componentDidMount():在安装组件(插入DOM树)后立即调用
  • componentDidUpdate(prevProps, prevState, snapshot):在更新发生后立即调用.初始渲染时不调用此方法.当组件被更新时,利用这个机会在DOM上进行操作.

简单来说,第一个在开始时被调用,第二个在每次更改时被调用.它们绝对不能互换.

关于在componentDidUpdate:beware内使用setState!使用setState次调用componentDidUpdate,所以如果每次调用componentDidUpdate都调用setState次,可能会得到一个无限循环.

还有,这里有a cool diagram条总结了整个组件生命周期.

React-native相关问答推荐

在第二次加载时仅将本机应用程序设置为状态

将 Cognito 用户与真实数据库用户联系起来的最佳方式是什么?

ReactNative:在所有组件和操作之间共享 sqlite 实例的最佳方法

react native HTML entities

如何在 React Native 的嵌套 Touchable 中传播touch 事件?

withNavigation 只能用于导航器的视图层次 struct

React Redux 使用带有连接组件的 HOC

为了回调 URL 的目的,在 Expo 中运行的 React Native 元素的 info.plist 在哪里?

Firebase JavaScript SDK 和 react-native-firebase 有什么区别

使用像 React Navigation 这样的基于 JS 的导航解决方案优缺点?

Typescript:onPress 类型

React Native Android 文本组件额外填充

[React-Native][Jest]SyntaxError: Unexpected token import

尽管 TypeScript 编译器错误,为什么我的 React Native 应用程序构建成功?

React native - 以编程方式判断是否启用了远程 JS 调试

在 ReactNative 中单击按钮时如何获取 TextInput 中的值

react-native:多色文本视图

如何在 Android 手机上运行 React Native 应用程序

如何在 react-native 中将文本复制到剪贴板?

react-native:0.41 app.json