在对象上设置默认值时,Flow 缺少道具验证

Flow is missing props validation when setting default values on an object

我得到了一个 React Functional 组件,它以 List 作为 props。

const Dashboard = (props: { items: List } = { items: List() }) => {
  const { items } = props
  ...
})

但是,const { items } = props 中的 items 会产生以下错误:

error 'items' is missing in props validation react/prop-types

FlowType docs举个例子:

ES2015 features Default values assigned to parameters must come after the parameter’s type annotation:

function foo (P1: T1 = V): U { .. }

但我不太清楚这如何应用于对象

这实际上不是流程错误,而是这个 eslint 错误:

https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/prop-types.md

如果您现在使用流而不关心 proptype,则可以通过禁用 eslint 规则来解决您的错误。

或者你添加一个 proptype,它没有流那么具体,但是运行时。

Dashboard.propTypes = {
  items: React.PropTypes.object
};