我试着用redux和react。mapStateToProps不被调用。
调度调用正常工作,操作到达还原器,返回newState并修改存储状态。但是没有调用mapStateToProps,组件也没有重命名。
class Wrapper extends React.Component {
updateChartData (data) => {
...logic...
this.props.actions.chartDataAction(modifiedData);
}
}
function mapStateToProps(state, ownProps) {
return {
chartData: state.chartData
};
}
function mapDispatchToProps(dispatch) {
return {
actions: bindActionCreators(chartDataAction, dispatch)
};
}
export default connect(mapStateToProps, mapDispatchToProps)(Wrapper);使用更新状态的其他类如下所示
class Chart extends React.Component {
render(){
/*console.log(this.props.chartData);*/
}
}
function mapStateToProps(state, ownProps) {
console.log(state);
return {
chartData: state.chartData
};
}
let ChartComponent = withStyles(styles)(Chart);
export default connect(mapStateToProps)(ChartComponent);行动如下:
export default function (state = [], action) {
if (action.type === actionTypes.CHANGE_CHARTDATA) {
return action.chartData;
} else {
return state;
}}
减速机是
export default function (state = [], action) {
if (action.type === actionTypes.CHANGE_CHARTDATA) {
return action.chartData;
} else {
return state;
}
}我甚至使用redux工具进行了检查。在redux存储中正在更新chartData。chartData正确地传递给图表类,并在第一次更新时呈现。在连续调度时,将在redux存储中更新chartData,但不会调用图表类的mapStateToProps,也不会重命名图表类。
更新:
我正在尝试实时更新图表,如果更改了chartData数组中的几个条目,它就不会呈现。
当更改整个chartData时,我注意到图表组件更改了。但是,如果chartData的任何部分发生了更改,我希望它重新复制。
https://stackoverflow.com/questions/48380624
复制相似问题