Javascript Redux初始状态在操作时消失
我的减速器中有一个初始状态,它是一个空对象Javascript Redux初始状态在操作时消失,javascript,reactjs,redux,Javascript,Reactjs,Redux,我的减速器中有一个初始状态,它是一个空对象 const initialState = { postHistory: {}, loading: true }; 我注意到,当我从一个不同的组件运行一个函数来分派操作时,这个初始状态实际上消失了。这给我带来了问题,因为在我的一个组件中,我试图检测这个对象中数据的存在 const obj = this.props.postHistory; this.props.postHistory[Object.keys(obj)[0]] &
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;
}
}
首先控制台您的有效负载。数据…然后检查您获取的数据是否为“JSON”格式我们的字符串格式。如果数据为“Object”格式,则它将存储在您的POSTHISTORY中,如果您的数据为“JSON”格式化,则它不会以初始状态存储数据。首先控制台您的有效负载。数据…然后检查您获取的数据是否为“JSON”格式我们的字符串格式。如果数据为“Object”格式,则它将存储在您的POSTHISTORY中,如果您的数据为“JSON”格式化后,它将不会以初始状态存储数据。您可以添加相关代码(减速机、操作、调用操作的位置)吗?您处理操作的代码可能错误,正在替换您的状态,而没有添加以前的值,例如postHistoryfirst,了解如何安装Redux Devtool扩展,以便在致电action creator之前/之后快速查看您的商店,这可能会有所帮助you@Stephanie帕克,当你从其他组件调用操作时,你能粘贴你的减速机代码的代码吗?你不能直接在代码内更改道具值,您需要将prop值指定给某个变量,然后在该值内进行过滤或更改,并在视图中显示它。是否可以添加相关代码(减速机、操作、调用操作的位置)?处理操作的代码可能错误,正在替换您的状态,而没有添加以前的值,例如,PostHistory第一件事首先,学习安装Redux Devtool扩展,以便在调用action creator之前/之后快速查看商店,这可能会有所帮助you@Stephanie帕克,当您从其他组件调用操作时,是否可以粘贴减速机代码的代码。您不能直接在代码内更改道具值,您需要将道具值指定给某个变量,然后在值内进行过滤或更改,并在视图中显示。