如何在不使用mapDispatchToProps()方法的情况下更新redux中的状态

时间:2016-07-04 14:33:32

标签: redux reducers

我正在尝试使用以下方法更新reducer状态: store.dispatch(NameOftheReducer(数据))。

它调用Action创建者但不更新reducer状态。我不想从我想要调度状态更改的地方创建任何React组件。有没有办法这样做..提前谢谢

2 个答案:

答案 0 :(得分:1)

我认为你误解了组件和redux状态的关系。

redux状态更改是通过操作完成的,无论哪个组件实际上是使用'这个州。

只要您在某处定义了动作创建者,并且您的reducer处理相应的action.type,那么您可以在任何组件中使用此动作创建者。

直接使用store没有任何好处。 store存储在context中,使用context通常被视为不良做法。关于redux的好处是它通过向您Providerconnect提供此处理。

除了初始化应用程序时,如果要在组件中使用动作创建者,则应始终使用mapDispatchToProps

答案 1 :(得分:0)

让我们假设store存储在全球存储的地方

然后你可以

store.dispatch({
  type: "SOME_ACTION",
  value: "value"
})

如果你有一些actionCreator:

function someAction(value) {
   return {
     type: "SOME_ACTION",
     value: value
   }
}

现在你可以将它用于发送:

store.dispatch(someAction("some value"))

我错过了什么吗?