如何return 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 }
这个returns错误
case ACTIONS.RESET_STATE:
return { ...state, state: INITIAL_STATE }
这是将初始状态添加到现有的一个增益
case ACTIONS.RESET_STATE:
return { ...state, search: { listings:[] }, listings: [] }
这有效,但我开始收到奇怪的变异错误。
如果您只是想完全重置状态,只需 return INITIAL_STATE
的 value:
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;
}
}
改为查看 Jiri Fornous 解决方案,因为这会改变您的数据。
更简单的方法是 return INITIAL_STATE.
case ACTIONS.RESET_STATE:
return INITIAL_STATE;
Anders 提出的解决方案是正确的,但在不可变方面存在潜在问题。这总是生成新对象。
case ACTIONS.RESET_STATE:
return { ...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 }
这个returns错误
case ACTIONS.RESET_STATE:
return { ...state, state: INITIAL_STATE }
这是将初始状态添加到现有的一个增益
case ACTIONS.RESET_STATE:
return { ...state, search: { listings:[] }, listings: [] }
这有效,但我开始收到奇怪的变异错误。
如果您只是想完全重置状态,只需 return INITIAL_STATE
的 value:
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;
}
}
改为查看 Jiri Fornous 解决方案,因为这会改变您的数据。
更简单的方法是 return INITIAL_STATE.
case ACTIONS.RESET_STATE:
return INITIAL_STATE;
Anders 提出的解决方案是正确的,但在不可变方面存在潜在问题。这总是生成新对象。
case ACTIONS.RESET_STATE:
return { ...INITIAL_STATE };