反应:...传播问题

时间:2018-08-30 01:40:14

标签: javascript reactjs redux react-redux

我正在尝试从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()} />

为什么会这样?

1 个答案:

答案 0 :(得分:2)

您的combineReducer处有错字:

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

将其更改为:visivility -> visibility

那么,为什么这适用于原始版本?参见:

visibility={store.getState().visivility}

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