我有不可变地图,其中键为日期,值为小时数组。在第一次调用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);