如果想通过props来重置state的值。有3种方法:

1. 最好的方法:key属性

修改key属性的值,可以使组件卸载后重新加载。所有的状态全部重置。

这种情况可以给key设一个每次渲染都会改变的值。

而且在多层嵌套的情况下,避免了组件的diff。

(递归实现树状级联组件,且节点带有状态时,每次都需要重置状态state)

2.  比较特殊属性:getDerivedStateFromProps

在getDerivedStateFromProps周期中,比较props.id的值,来更新state

3. 通过ref调用实例

class App extends React.Component {
constructor(props) {
super(props);
this.ref = React.createRef();
}
componnetDidMount() {
// this.ref.current指向子组件的实例对象this
this.ref.current.resetData()
}
render() {
// 只能是类子组件
return <Child ref={this.ref}>
}
} class Child extends React.Component {
resetData = () => {
// TODO
}
render() {
return <div></div>
}
}

最新文章

  1. 分分钟带你玩转 Web Services
  2. Myeclipse导包总是报错,jar包路径都没问题
  3. WebView 与PC机Chrome配合调试
  4. url参数中带有+号,服务器端解码之后没了
  5. 第四周作业-yjw
  6. 转:DataTable的Compute方法的应用
  7. Tip8:Unity中诸如 Awake() Start() Update()等函数的 执行顺序
  8. orale内置函数COALESCE和GREATEST和LEAST
  9. PDO基础知识
  10. Qt5 FOR WINCE7, Visual Studio 2008环境的搭建
  11. Chapter 1 First Sight——14
  12. 初识mybatis(二)
  13. hello1源代码分析
  14. rsyslog磁盘辅助(Disk-Assisted)模式踩坑记
  15. Spring Boot 系列 - WebSocket 简单使用
  16. 读书笔记--Android Gradle权威指南(上)
  17. java开发基础知识学习
  18. mysql数据库字符集相关操作(修改表字段编码,使其支持emoji表情)
  19. python---django中序列化
  20. shell test条件判断

热门文章

  1. Word 下划线无法对齐?用表格替代下划线(论文封面必备)
  2. PAT甲级题分类汇编——计算
  3. [v]Windows下Git安装指南
  4. python——操作系统的发展史
  5. JAVA 插入注解处理器
  6. 前端之:传统的DOM是如何渲染的?
  7. python识别文字tesseract
  8. kali 系统膨胀后如何处理
  9. 【问题】man命令打开的手册上链接怎么展开?
  10. Docker - Cheap sheet