根据之前的理解props变化会调这个函数。但是我发现改变state也会调用这个函数,也就是说组件的初始化/更新都会调用这个函数。那如果组件的某个状态既依赖于某个内部state,也依赖于某个外部props,这样岂不是很麻烦。
根据之前的理解props变化会调这个函数。但是我发现改变state也会调用这个函数,也就是说组件的初始化/更新都会调用这个函数。那如果组件的某个状态既依赖于某个内部state,也依赖于某个外部props,这样岂不是很麻烦。
getDerivedStateFromProps 刚出来的时候,确实是只有props变化才会触发。后来的版本官方改了,props和state都会触发。所以现在这个函数只在一些特殊情况使用,平常用不到了。
所以你需要在didMount和didUpdate中去处理逻辑了
或者用新的React Hooks
,能完美解决你的问题
1 回答1.7k 阅读✓ 已解决
4 回答1.7k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答1.6k 阅读✓ 已解决
4 回答1.4k 阅读
1 回答1.6k 阅读✓ 已解决
文档都说了
props和state都会触发渲染, props本质来说也是state, 没有state那来的props?
这个静态方法没有this,所以你要像拿来干dom的事,那就是做梦, 派生state,也就是说, 你可以对state加工, 如果 if(state.count % 2 ) return state, 也就说可以在渲染前更改state,或者props.