我正在尝试从Dan Abramov的课程中重新创建Redux示例。在应用程序级别传播{...store.getState()}不起作用,Redux正在更改状态,React不会重新呈现。

当我用第123行替换第121行时,代码将引发错误。

完整代码在这里: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()} />

为什么会这样呢?

最佳答案

您的combineReducer部分有错字:

const appReducer = combineReducers({
    todos: todos_reducer,
    visivility: visibility_reducer
})


更改为:visivility -> visibility

那么,为什么这与原始版本兼容?看到:

visibility={store.getState().visivility}


在这里,您正在将store.getState().visivility状态作为visibility传递给您的应用程序。错字是靠运气修复的。但是,当您传播对象visivility时,它照原样进行。

关于javascript - react :…扩散问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52088118/

10-12 00:02