如何将this.props初始化为this.state

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (74)

prop中有多个输入值,但我需要的值是状态。我说不要初始化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

提问于
用户回答回答于

您可以复制道具并将其置于状态。如果您的目标是从子级更改父级组件状态中的状态。您需要使用Context Api或Redux

用户回答回答于

您可以在组件安装时将prop值传递给状态。您可以使用componentDidMount生命周期方法执行以下操作:

componentDidMount() {

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

  }

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

有关ComponentDidMount的更多信息,请参阅React文档

所属标签

可能回答问题的人

  • 嗨喽你好

    7 粉丝480 提问9 回答
  • uncle_light

    5 粉丝518 提问8 回答
  • 富有想象力的人

    3 粉丝0 提问7 回答
  • 无聊至极

    4 粉丝504 提问6 回答

扫码关注云+社区

领取腾讯云代金券