不可变的日期地图

时间:2017-12-08 22:14:58

标签: redux immutable.js

我有不可变地图,其中键为日期,值为小时数组。在第一次调用redux动作返回state.mergeDeep(响应)时,everythink看起来很好,在这几天的更新时间也是如此,但是当我想在这个地图上添加更多日期时,我会得到很多重新渲染。 它看起来很奇怪当我在更新时返回state.set('2017-11-01',['12:00'])它的确定但是返回state.set('2018-01-01,['12:00' ])调用更新视图。

回应示例:

response = { '2017-12-01':['10:00', '11:00], '2017'12-02':['10:00'], . . . '2017-12-30':[10:00], }

WhyDidYouUpdate包日志:

MyComponent.props.myData._root.nodes.11.nodes.1.entry.1._root.array.0.ownerID

MyComponent.props.myData._root.nodes.8.nodes.0.entry.1._root.array

我不知道该怎么办

编辑:

class TestContainer extends PureComponent {
  componentDidMount() {
    this.props.firstCall('2017-12-01');
  }

  @autobind
  onChangeDate(date: string) {
    this.props.updateCall(date);
  }

  render() {
    return (
      <button onClick={() => this.onChangeDate('2018-01-01')} />
    );
  }
}


function mapStateToProps(state: Object): Object {
  return {
    myData: state.myData,
  };
}

function mapDispachToProps(dispatch): Object {
  return bindActionCreators({...myDataActions}, dispatch);
}

export default connect(mapStateToProps, mapDispachToProps)(TestContainer);

0 个答案:

没有答案