关联的动作创建者应使用哪种输入方式?

时间:2019-07-04 14:45:08

标签: reactjs redux flowtype

我在React + Redux项目中使用Flow。我有一个用于连接并存储和使用多个动作创建者的组件。我想在type Props中为此操作创建者设置类型。

以前,在这种情况下,我只使用Function类型。看起来像这样:

type Props = {
  onSomeEvent: Function,
}

现在,我只想将Function替换为更具体的内容,例如() => void。但是,我不确定究竟将返回连接的函数。

如果此函数不返回任何内容,或者应该是() => void,应该是() => Action吗?

P.S。我已经在这里检查过Flow文档: https://flow.org/en/docs/react/redux/

但是,它只涉及常规的动作创建者,而没有作为道具连接到组件。

1 个答案:

答案 0 :(得分:0)

我建议采用以下方法:

// actions.js

type OnSomeEventType = () => SomeAction;
export const onSomeEvent: OnSomeEventType = () => {
  // some implementation here
};

// Component.jsx

import type { OnSomeEventType } from 'actions.js';

type Props = {|
  onSomeEvent: OnSomeEventType,
|};

因此,您可以明确指定您的组件依赖于某些功能接口。

如果您不想指定这样的依赖关系(在您的情况下可以确定),则可以使用以下方式:

type Props = {|
  onSomeEvent: () => mixed,
|}

因为通常您不在乎组件内部动作创建者返回的内容:您只需将其触发并忘记。