道具更新状态数据反应

时间:2017-10-04 07:59:17

标签: javascript reactjs

我正在研究反应js,我有一个来自父母的数据我正在存储子状态,我正在更新那个子数据。现在我的问题是它正在更新我的父数据以及它正在更新状态的反应方式和道具都在更新。 我认为道具是只读的。为什么它会更新? 下面是我的代码

constructor(...args) {
    super(...args);
    this.state = {
      MixData: this.props.allYearData,

    };
  }
 componentDidMount() {
    this.setState({

     MixData: this.props.allYearData
    });
  }
  componentWillReceiveProps(nextProps) {
    this.setState({
      channelMixData: nextProps.allYearData
    });
  }
//here I am updating value
  updateValuePercent = key => {
    let reduceValue = 0.005 / this.props.mix.length;
    let MixData = [...this.state.MixData];
    let updatedData = MixData.map(data => {

        data.mix.map(name => {

            name.volume =
              key.type === 'Inc'
                ? name.volume + 0.005
                : name.volume - 0.005;

        });
        return data;

      return data;
    });

    this.setState({ MixData: updatedData });
  };
 render() {
    if (
      !this.props.allYearData ||

    )
      return null;
console.log("this state and empty data....",this.state.MixData,this.props.allYearData);//here both data showing same value even after updating state

}

0 个答案:

没有答案