我的减速器中有一个初始状态,它是一个空对象
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”格式,则不会以初始状态存储数据。