我正在尝试使用以下方法更新reducer状态: store.dispatch(NameOftheReducer(数据))。
它调用Action创建者但不更新reducer状态。我不想从我想要调度状态更改的地方创建任何React组件。有没有办法这样做..提前谢谢
答案 0 :(得分:1)
我认为你误解了组件和redux状态的关系。
redux
状态更改是通过操作完成的,无论哪个组件实际上是使用'这个州。
只要您在某处定义了动作创建者,并且您的reducer处理相应的action.type
,那么您可以在任何组件中使用此动作创建者。
直接使用store
没有任何好处。 store
存储在context
中,使用context
通常被视为不良做法。关于redux
的好处是它通过向您Provider
和connect
提供此处理。
除了初始化应用程序时,如果要在组件中使用动作创建者,则应始终使用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"))
我错过了什么吗?