我正在尝试从Dan Abramov的课程中重新创建Redux示例。在应用程序级别传播{...store.getState()}
不起作用,Redux正在更改状态,React不会重新呈现。
当我将121行替换为123行时,代码将引发错误。
完整代码在这里:https://github.com/asaadsaad/redux-react-code/blob/master/13-redux.html
状态对象:
{ todos: [{id, text, completed}], visivility: 'ALL' }
此行工作正常:
<TodoApp todos={store.getState().todos} visibility={store.getState().visivility} />
此行不起作用:
<TodoApp {...store.getState()} />
为什么会这样?
答案 0 :(得分:2)
您的combineReducer
处有错字:
const appReducer = combineReducers({
todos: todos_reducer,
visivility: visibility_reducer
})
将其更改为:visivility -> visibility
那么,为什么这适用于原始版本?参见:
visibility={store.getState().visivility}
在这里,您正在将store.getState().visivility
状态作为visibility
传递到您的应用程序。错字是靠运气修复的。但是,当您传播对象visivility
时,它照原样进行。