Javascript 儿童如何';道具更新了吗?
我是个新手,仍然在努力学习如何更新道具,以及更新是在什么生命周期方法中进行的。下面是我写的一些代码:Javascript 儿童如何';道具更新了吗?,javascript,reactjs,Javascript,Reactjs,我是个新手,仍然在努力学习如何更新道具,以及更新是在什么生命周期方法中进行的。下面是我写的一些代码: export default Parent extends Component { constructor(props) { super(props); this.state = { name: "Tom" } } changeName = () => { this.setState({ name: "
export default Parent extends Component {
constructor(props) {
super(props);
this.state = {
name: "Tom"
}
}
changeName = () => {
this.setState({ name: "Jerry" });
}
render() {
return <div>
<Child name={this.state.name}/>
<button onClick={this.changeName }>Change Name</button>
</div>
}
}
export default Child extends Component {
...
shouldComponentUpdate(newProps, newState) {
console.log("old name is" + this.props.name)
console.log("new name is" + newProps.name)
return true;
}
render() {
return <p>{this.props.name}</p>
}
}
这样的生命周期方法存在吗?我知道名称不匹配,但是否有一个生命周期方法可以实现上述功能?不,没有这样的方法
将道具分配给
此
是在生命周期方法之间(在shouldComponentUpdate
之后,在呈现
之前)由库本身进行的,并且没有公共界面可以干扰该过程。如果您正在搜索方法:上面的代码不起作用。是一个有效的解决方案,而不是类组件。@MattCroak我的代码中可能有一些拼写错误,这可能不起作用,但这不是重点。我想知道这个道具什么时候能拿到updated@secondimagereact的工作方式是将父组件的状态传递给子组件(即道具)。在父对象中更新子对象的道具时,子对象的道具也会更新。你试图在上面描述的生命周期方法不是一件事。你仍然不明白,兄弟,检查Aprillion的答案,这就是我想要的。那么为什么单击按钮后,this.props.name
不是shouldComponentUpdate()中的最新名称,您能解释一下吗?那个家长不是也已经被更新了吗?
afterShouldComponentUpdate(newProps, newState){
...
this.props = newProps;
}