首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在this.state中初始化this.props

如何在this.state中初始化this.props
EN

Stack Overflow用户
提问于 2019-06-24 21:07:15
回答 3查看 571关注 0票数 0

一个属性中有多个输入值,但我需要的值是in state。我被告知不要初始化this.props=this.state,因为props是只读的。

我试过this.props=this.state,它确实起作用了。

代码语言:javascript
复制
const prevHouse = this.props.house; // This has multiple input values

prevHouse.rent = this.state.rent; //State is given input value

上面的语法用法是否正确,解决方案是什么?

更新:将上面的this.props.house更改为prevHouse

EN

回答 3

Stack Overflow用户

发布于 2019-06-24 21:51:06

您可以复制道具并将其放入状态。如果您的目标是将父组件的状态从子组件中更改。您需要使用上下文Api或Redux

票数 1
EN

Stack Overflow用户

发布于 2019-06-24 21:21:52

您可以在组件挂载时将prop值传递到state。您可以使用componentDidMount生命周期方法执行以下操作:

代码语言:javascript
复制
componentDidMount() {

    this.setState({
      rent: this.props.house.rent
    })

  }

这样,当组件挂载您的状态值时,rent将是this.props.house.rent的值。然后,您可以对状态中需要的每个道具执行此操作。

有关ComponentDidMount的更多信息,请访问React Documentation

票数 0
EN

Stack Overflow用户

发布于 2019-10-24 22:11:47

你可以像下面这样使用扩展操作符用道具初始化状态

代码语言:javascript
复制
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
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56737279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档