作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题是在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/
大多数在线教程都表明,initialState 中的属性应该是 '' (如果它是字符串),例如: let defaultState = Immutable.fromJS({ viewData:
我试图阻止 Netbeans 打印这样的声明 // // #[regen=yes,id=DCE.B7E25FE1-C10B-ED91-77... // 不从代码中删除它们。 最佳答案 当您从 Ne
我是一名优秀的程序员,十分优秀!