Reactjs 使用react redux connect时如何使用流式道具

Reactjs 使用react redux connect时如何使用流式道具,reactjs,redux,react-redux,flowtype,Reactjs,Redux,React Redux,Flowtype,我想声明我的react reduxmapstatetops函数正在返回正确类型的属性,并且没有忽略任何属性 如果我这样做,它会抱怨道具的调度。如果我做的不是$Exact,我想它不会捕捉到丢失或额外的道具 我想myComponent可以用类型道具声明一个静态字段,这样我就可以从那里读取类型,但这看起来像是一个黑客,我需要为每个组件都这样做 在src/mycomponent/index.js中: 我认为你不应该在道具上使用$Exact。在React中指定额外的道具并不是一个错误,很多库都依赖于这种行

我想声明我的react redux
mapstatetops
函数正在返回正确类型的属性,并且没有忽略任何属性

如果我这样做,它会抱怨道具的调度。如果我做的不是
$Exact
,我想它不会捕捉到丢失或额外的道具

我想myComponent可以用类型道具声明一个静态字段,这样我就可以从那里读取类型,但这看起来像是一个黑客,我需要为每个组件都这样做

src/mycomponent/index.js
中:
我认为你不应该在道具上使用
$Exact
。在React中指定额外的道具并不是一个错误,很多库都依赖于这种行为。如果在没有
$Exact
的情况下使用
道具
类型,它仍然会捕获缺少的道具(),但不会抱怨传递了额外的道具(事实上,流中对象类型的行为已更改为允许在类型中未指定额外字段的对象)

当然,这里的理想解决方案是让Flow允许扩展对象类型,例如:

type Props = { /* ... */ }
type ReduxProps = { ...Props, dispatch: /* ... */ }

但是,虽然这个功能没有落地,我相信最好还是容忍额外的道具被传递。它也应该相当安全,因为Flow不会让您读取未知的道具iirc。

您可以将道具类型与&operator组合。因此,您可以使用类似于
typeprops=OwnProps&ReduxProps&ReduxDispatchers&etc的东西

type Props = {
  myKey: string,
}

export default class MyComponent extends React.Component {
   props: Props;
   ...
} 
type Props = { /* ... */ }
type ReduxProps = { ...Props, dispatch: /* ... */ }