是否可以从组件外部触发Redux操作?

时间:2018-06-21 07:20:36

标签: reactjs redux react-redux

我正在构建一个React应用,正在调用一个自定义处理程序库来调用我们的REST API。

在这些(非反应性)函数中,我想触发Redux动作以使用端点响应来更新商店,但在没有通常的'mapDispatchToProps'/ connect()的情况下,无法弄清楚如何触发Redux动作。 )方法。

这可能吗?

谢谢

2 个答案:

答案 0 :(得分:7)

为了从React component范围之外进行分发和采取行动,您需要获取商店实例并像上面一样调用dispatch

import { store } from '/path/to/createdStore';
​
function testAction(text) {
  return {
    type: 'TEST_ACTION',
    text
  }
}
​
store.dispatch(testAction('StackOverflow))

答案 1 :(得分:0)

我真的很喜欢复制Promise使用的resolve / reject或onSuccess / onError模式。

所以我建议你做同样的事情。您调用自定义处理程序,并将其传递给onSuccess和onError回调。因此,当您获取数据时,您可以调用onSuccess,如果发生错误,则可以调用onError回调。

onSuccess和onError是将在组件中提供的功能,这些功能将向用户显示某些内容或进行其他操作(如果出现错误,则显示错误的敬酒消息!!)。

让我们看一个例子:

#include <stdio.h>

int main(void)
{
  int test = 0, ret;
  int a= 10,b = 20;
  test ? a*2 : b*3;
  printf("a = %d, b = %d\n",(test ? (a = 200) : (b = 300)), (test ? (a =2) : (b = 3)));

  return 0;
}

在onSuccess内部,您可以调用Redux来存储数据。