【问题标题】:What typing should be used for connected action creators?连接的动作创建者应该使用什么类型?
【发布时间】:2019-11-15 08:01:27
【问题描述】:

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

以前我只使用Function 类型来处理这种情况。所以它看起来像:

type Props = {
  onSomeEvent: Function,
}

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

如果这个函数没有返回任何东西,或者因为它是动作创建者,它应该只是() => void,它应该是() => Action吗?

附:我已经在这里检查了 Flow docs: https://flow.org/en/docs/react/redux/

但是,它只涉及常规的 Action Creator,而不是作为道具连接到组件。

【问题讨论】:

    标签: reactjs redux flowtype


    【解决方案1】:

    我推荐以下方法:

    // 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,
    |}
    

    因为通常您并不关心组件内部的动作创建者返回什么:您只需触发它并忘记。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-14
      • 2020-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-12
      • 1970-01-01
      • 2017-05-27
      相关资源
      最近更新 更多