如何将 redux 状态返回到初始状态
How to return redux state to initial state?
我很难弄清楚这一点,本质上我正在尝试将状态设置为初始状态,到目前为止我尝试过:
// -- Initial state ------------------------------------------------------------
const INITIAL_STATE = {
search: {
listings: []
},
listings: []
}
// -- Story structure for story editor -----------------------------------------
export default function(state = INITIAL_STATE, action) {
switch(action.type) {
case ACTIONS.RESET_STATE:
return { ...state, INITIAL_STATE }
default:
return state;
}
}
这只是将初始状态添加到现有状态
case ACTIONS.RESET_STATE:
return { ...state, state = INITIAL_STATE }
这将返回错误
case ACTIONS.RESET_STATE:
return { ...state, state: INITIAL_STATE }
这是将初始状态添加到现有的一个增益中
case ACTIONS.RESET_STATE:
return { ...state, search: { listings:[] }, listings: [] }
这有效,但我开始出现奇怪的突变错误。
Anders 提出的解决方案是正确的,但存在不可变的潜在问题。这将始终生成新对象。
case ACTIONS.RESET_STATE:
return { ...INITIAL_STATE };
请改用Jiri Fornous解决方案,因为这会改变您的数据。
更简单的方法是返回INITIAL_STATE。
case ACTIONS.RESET_STATE:
return INITIAL_STATE;
如果你只是想完全重置状态,只需返回 INITIAL_STATE
的值:
export default function(state = INITIAL_STATE, action) {
switch(action.type) {
case ACTIONS.RESET_STATE:
return {
search: {
listings: []
},
listings: []
};
default:
return state;
}
}
如果要将INITIAL_STATE
保存在一个地方。 将初始状态创建者更改为函数:
function get_INITIAL_STATE => {
return { search: {
listings: []
},
listings: []
}
}
export default function(state = get_INITIAL_STATE(), action) {
switch(action.type) {
case ACTIONS.RESET_STATE:
return get_INITIAL_STATE();
default:
return state;
}
}
相关文章:
- XMLHttpRequest未返回值-状态202
- PhantomJs在控制台中发出http请求时不会返回任何状态
- 在Redux中链接async和sync操作以计算初始状态
- 返回当前状态名称的方法
- React + Flux:将初始状态引入存储
- 你能,或者应该在Redux'中使用localStorage吗;s的初始状态
- 虽然我更改了标签的文本,但它仍然返回初始值,我该如何解决
- javascript关闭以记住初始状态
- 在两个或多个 UL 列表之间切换,如果单击一个列表,则其他列表会自动以初始状态返回,就像从未单击过一样
- ReactJs:如何在渲染组件时传递初始状态
- 如何将 redux 状态返回到初始状态
- 停止无限CSS3动画并平滑恢复到初始状态
- 将高图重置为初始状态
- angularjs 中的 $http POST 调用返回 HTTP 状态代码 405
- 使用网桥获取随 PhantomJS 返回的状态代码
- 如何将 DOM 状态重置为初始状态(首次接收页面时?
- 高图表 将向下钻取(三层)重置为初始状态
- 是否可以在单击时将类(特别是其动画)重置回其初始状态
- ReactJS中初始状态的未定义值
- 使用javascript将一个字符动态替换为另一个字符,而不将页面返回到初始状态