我在React + Redux项目中使用Flow。我有一个用于连接并存储和使用多个动作创建者的组件。我想在type Props
中为此操作创建者设置类型。
以前,在这种情况下,我只使用Function
类型。看起来像这样:
type Props = {
onSomeEvent: Function,
}
现在,我只想将Function
替换为更具体的内容,例如() => void
。但是,我不确定究竟将返回连接的函数。
如果此函数不返回任何内容,或者应该是() => void
,应该是() => Action
吗?
P.S。我已经在这里检查过Flow文档: https://flow.org/en/docs/react/redux/
但是,它只涉及常规的动作创建者,而没有作为道具连接到组件。
答案 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,
|}
因为通常您不在乎组件内部动作创建者返回的内容:您只需将其触发并忘记。