请问老师,componentWillReceiveProps 已经不推荐使用了,那更新列表的这部分代码要如何修改呢?
来源:4-3 使用动态路由获取不同列表内容(3)
夏葵1616
2021-04-22 15:44:29
问题描述:
componentWillReceiveProps 已经不推荐使用了,那更新列表的这部分代码要如何修改呢?
getDerivedStateFromProps 是静态的,不能使用 this,那么该如何更新 state 呢?
相关截图:
2回答
同学你好,对于你的问题解答如下:
1、正常情况下,在getDeriveStateFromProps中使用直接return返回数据就可以更新state中对应的数据。示例:
一开始state下的test是空字符串,在getDeriveStateFromProps中直接return 返回一个对象设置test属性值为"慕课网",就可以更新state中的test值了,所以页面中显示的内容为慕课网,如下图所示:
但是本案例代码中,老师测试, 由于需要通过axios异步获取数据,无法直接设置返回值,所以无法通过getDerivedStateFromProps实现效果。
2、componentWillReceiveProps目前改成了UNSAFE_componentWillReceiveProps,虽然不推荐使用了,但是原名字componentWillReceiveProps还是可以使用的,一般不会影响项目的正常运行,所以目前学习阶段,建议同学还是使用原名字,防止出现未知的错误。
3、同学使用componentDidUpDate方法,结合判断实现效果也是可以的。
祝学习愉快~
夏葵1616
提问者
2021-04-22
我改成了 componentDidUpdate,加以判断可以实现了,但不知道这样可不可以,麻烦老师看一下
相似问题