在 Reactjs 中比较众多 prevProps 和 nextProps 的最佳方法是什么?
What is the best way to compare between the many prevProps and nextProps in Reactjs?
子组件正在从其父组件接收许多更新的 props component.I 如果 props.Currently 中有任何更新,我想更新子组件,我正在使用生命周期方法进行操作componentWillReceiveProps
按预期工作。
componentWillReceiveProps(nextProps){
if(this.props.scale_length !== nextProps.scale_length){
const {scale_height,scale_breadth} = this.props
this.setState({
torsoScale: new
THREE.Vector3(nextProps.scale_length,scale_height,scale_breadth)
});
}
if(this.props.scale_breadth !== nextProps.scale_breadth){
const {scale_height,scale_length} = this.props
this.setState({
torsoScale: new
THREE.Vector3(scale_length,scale_height,nextProps.scale_breadth)
});
}
...
}
但是,我会在 future.How 中获得 8 个以上的道具,我会继续 that.Thanks。
I want to update the child component if there is any update in the props.
这是 React 默认的做法!你应该使用它的正常组件更新,而不是试图对抗它并决定是否自己更新。
您可以为此使用 getDerivedStateFromProps
,但可能还有更好的方法,例如直接在 render
方法中计算向量。
这是一篇包含更多详细信息的文章:https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html
子组件正在从其父组件接收许多更新的 props component.I 如果 props.Currently 中有任何更新,我想更新子组件,我正在使用生命周期方法进行操作componentWillReceiveProps
按预期工作。
componentWillReceiveProps(nextProps){
if(this.props.scale_length !== nextProps.scale_length){
const {scale_height,scale_breadth} = this.props
this.setState({
torsoScale: new
THREE.Vector3(nextProps.scale_length,scale_height,scale_breadth)
});
}
if(this.props.scale_breadth !== nextProps.scale_breadth){
const {scale_height,scale_length} = this.props
this.setState({
torsoScale: new
THREE.Vector3(scale_length,scale_height,nextProps.scale_breadth)
});
}
...
}
但是,我会在 future.How 中获得 8 个以上的道具,我会继续 that.Thanks。
I want to update the child component if there is any update in the props.
这是 React 默认的做法!你应该使用它的正常组件更新,而不是试图对抗它并决定是否自己更新。
您可以为此使用 getDerivedStateFromProps
,但可能还有更好的方法,例如直接在 render
方法中计算向量。
这是一篇包含更多详细信息的文章:https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html