Javascript redux';s connect()不';t触发器复卷机

Javascript redux';s connect()不';t触发器复卷机,javascript,reactjs,redux,Javascript,Reactjs,Redux,我是react/redux的新手,我遇到了一个问题:我的connect()组件没有触发render()。经过一些调试后,我非常惊讶地发现这个问题的根源在于一个减速机。显然,在分派了我的操作之后,reducer以某种方式在其第一个参数中获得了更新的状态(尽管根据,它应该是旧状态),这就是connect()组件无法接收新道具的原因。这是我的减速机: import * as types from '../actions/action-types'; const chart = (state = {}

我是react/redux的新手,我遇到了一个问题:我的
connect()
组件没有触发
render()
。经过一些调试后,我非常惊讶地发现这个问题的根源在于一个减速机。显然,在分派了我的操作之后,reducer以某种方式在其第一个参数中获得了更新的状态(尽管根据,它应该是旧状态),这就是
connect()
组件无法接收新道具的原因。这是我的减速机:

import * as types from '../actions/action-types';

const chart = (state = {}, action) => {
    switch (action.type) {
        case types.ADD_CHART:
            let series = [
                {
                    id: 0,
                    visible: true,
                    title: action.series[0]
                }
            ];

            for (let i = 1; i < action.series.length; i++) {
                series.push({
                    id: i,
                    visible: false,
                    title: action.series[i]
                });
            }

            return {
                id: action.id,
                series
            }

        case types.UPDATE_CHART:
            if (state.id !== action.id) {
                return state;
            }
            let result = {
                id: action.id,
                series: action.series
            };

            return {
                id: action.id,
                series: action.series
            };

        default:
            return state;
    }
}

const charts = (state = [], action) => {
    console.log('charts reducer:');
    console.log('old state:'); // it outputs the updated state
    console.log(state);
    switch (action.type) {
        case types.ADD_CHART:
            return [
                ...state,
                chart(undefined, action)
            ];

        case types.UPDATE_CHART:
            let newState = state.map(c => chart(c, action));
            console.log('new state:');
            console.log(newState);
            return state.map(c => chart(c, action));

        default:
            return state;
    }
}

export default charts;
import*作为“../actions/action-types”中的类型;
常量图表=(状态={},操作)=>{
开关(动作类型){
案例类型。添加图表:
let级数=[
{
id:0,
可见:对,
标题:行动系列[0]
}
];
for(设i=1;i{
log('charts reducer:');
console.log('old state:');//它输出更新的状态
console.log(状态);
开关(动作类型){
案例类型。添加图表:
返回[
……国家,
图表(未定义,动作)
];
案例类型。更新图表:
让newState=state.map(c=>chart(c,action));
log('newstate:');
console.log(newState);
返回state.map(c=>chart(c,action));
违约:
返回状态;
}
}
导出默认图表;

对此有什么想法吗?

你能分享你的
动作
组件
动作从哪里发出的代码吗?@HarkiratSaluja我发现了一个问题。原因是在给定的状态片中有一个对象,我没有对它进行修改。我想最好将这类对象提取到单独的还原器中。