我的减速器中有一个初始状态,它是一个空对象

const initialState = {
    postHistory: {},
    loading: true
};


我注意到,当我从其他组件运行一个函数时,该组件调度该初始状态实际上消失的操作。这给我带来了问题,因为我试图在其中一个组件中检测该对象中的数据。

const obj = this.props.postHistory;
this.props.postHistory[Object.keys(obj)[0]] && this.props.postHistory[Object.keys(obj)[0]]


但是,当该动作被触发时,我可以在redux中看到该对象的初始状态已经完全消失,只有加载值存在。

TypeError: Cannot convert undefined or null to object


还有其他人遇到过这样的问题吗?任何建议克服欢迎!谢谢。

根据建议添加减速器代码:

import { POST_HISTORY } from '../actions/types';

const initialState = {
    postHistory: {},
    loading: true,
};

export default function(state = initialState, action){

    const { type, payload } = action;

    switch(type){
        case POST_HISTORY :
            return {
                ...state,
                postHistory: payload.data,
                loading: false
            }
        default:
            return state;
    }

}

最佳答案

首先控制台您的payload.data...。然后检查您获取的数据是否为“ JSON”格式和我们的字符串格式。如果数据为“ Object”格式,则它将存储在您的POSTHISTORY中,并且数据采用“ json”格式,则不会以初始状态存储数据。

10-06 04:43