一个属性中有多个输入值,但我需要的值是in state。我被告知不要初始化this.props=this.state,因为props是只读的。
我试过this.props=this.state,它确实起作用了。
const prevHouse = this.props.house; // This has multiple input values
prevHouse.rent = this.state.rent; //State is given input value
上面的语法用法是否正确,解决方案是什么?
更新:将上面的this.props.house更改为prevHouse
发布于 2019-06-24 21:51:06
您可以复制道具并将其放入状态。如果您的目标是将父组件的状态从子组件中更改。您需要使用上下文Api或Redux
发布于 2019-06-24 21:21:52
您可以在组件挂载时将prop值传递到state。您可以使用componentDidMount
生命周期方法执行以下操作:
componentDidMount() {
this.setState({
rent: this.props.house.rent
})
}
这样,当组件挂载您的状态值时,rent
将是this.props.house.rent
的值。然后,您可以对状态中需要的每个道具执行此操作。
有关ComponentDidMount的更多信息,请访问React Documentation
发布于 2019-10-24 22:11:47
你可以像下面这样使用扩展操作符用道具初始化状态
constructor(props) {
super(props)
this.state = {
...props //this mean the value of state will filled with all of the object values in props object without need assigning one by one object values
}
}
https://stackoverflow.com/questions/56737279
复制相似问题