你能告诉我如何在react js中接收更新的道具吗?我知道componentWillReceiveProps
是unsafe
,我试过使用getDerivedStateFromProps
,但没有工作
下面是我的代码https://codesandbox.io/s/rm30zoonk4
两秒钟后,我正在更新我的状态,该状态将传递给props
Expected output after two second
abcsssss
static getDerivedStateFromProps(nextProps, prevState) {
if (nextProps.src !== "") {
return { src: nextProps.src };
} else return null;
}
发布于 2018-12-11 08:24:42
您应该使用componentDidUpdate(prevProps、prevState)
每当组件处于接收新属性或内部状态时,componentDidUpdate都会被调用,您可以在组件重新呈现之前进行干预。
所以在hello.js中,而不是在getDerivedState中:
componentDidUpdate(prevProps) {
if (prevProps.src !== this.props.src) {
this.test()
}
}
执行"if (prevProps.src !== this.props.src)“比较,以便组件仅在源属性发生更改时才更新,从而防止不必要的重新渲染。
https://stackoverflow.com/questions/53715608
复制相似问题