gpt4 book ai didi

javascript - redux reducer 返回 'defaultState'安全吗?

转载 作者:行者123 更新时间:2023-11-28 18:40:23 26 4
gpt4 key购买 nike

问题是在reducer中返回defaultState是否安全。如果不安全,请给我一个例子,当状态有可能发生变化时。

const defaultState = {
test: 'test
}

function testReducer(state, action) {
switch action.type
case RETURN_DEFAULT_STATE:
return defaultState; // is this ok to do? or need {...defaultState}
default:
return state;
}

最佳答案

如果您没有在其他地方改变 defaultState 并且它反射(reflect)了您想要的新状态,我不知道会出现什么问题。

以下是一些如何改变 defaultState 的示例:

无需修改示例代码:

store.dispatch({type: "RETURN_DEFAULT_STATE"});
store.getState().x = "x";

请注意,无论如何您都不应该这样做,如果您这样做,就已经遇到问题了。

现在,示例代码的修改版本:

export const defaultState = {
test: 'test
}

function testReducer(state, action) {
switch action.type
case RETURN_DEFAULT_STATE:
return defaultState; // is this ok to do? or need {...defaultState}
default:
return someOtherReducer(state, action);
}

function someOtherReducer(state, action) {
state.x = "x";
return state;
}

请注意,无论如何,您都不应该执行 someOtherReducer() 的操作,如果您这样做,就已经遇到问题了。

import {defaultState} from "whatever";

defaultState.x = "x";
store.dispatch({type: "RETURN_DEFAULT_STATE"});
store.dispatch({type: "UNKNOWN"});

关于javascript - redux reducer 返回 'defaultState'安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36200680/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com