如何在react-native中的ComponentDidUpdate中设置props值?

时间:2018-06-13 14:15:48

标签: reactjs react-native

componentDidUpdate(){
 var date = this.props.navigation.state.params.selected_date

 this.setState({
   sleepinputs_date: date
 })
}

当我尝试setState时,它会抛出一个错误" enter image description here

2 个答案:

答案 0 :(得分:3)

您创建了无限状态更新。 在 componentDidUpdate 内部,你更新状态,当它更新状态时, componentDidUpdate 再次调用,这些内容会继续进行而不会结束。

答案 1 :(得分:1)

根据反应文档,您将在componentDidUpdate中得到一个参数。只有在使用如下条件时才能设置状态。

  componentDidUpdate(prevProps) {
//    Typical usage (don't forget to compare props):
      if (this.props.userID !== prevProps.userID) {
        this.fetchData(this.props.userID);
      }
    }

基本上你将旧道具与新道具进行比较。只有它们不同,您才能继续更新或修改该值。如果以前的道具与当前道具相同,那么为什么要再次设置它们呢。