我正在使用Flow with React和Redux . 自从我写完最后一个组件后,它工作得很好:

const PluginList = (props: { plugins: Plugin[] }) => {
  const { plugins } = props

  return (
    <div>
      <List selectable>
        {plugins.map(plugin => (
          <PluginListItem plugin={plugin} key={plugin.elementName} />
        ))}
      </List>
    </div>
  )
}

PluginListItem是一个redux连接组件:

class PluginListItem extends React.Component {
  props: { plugin: Plugin, addPlugin: Plugin => void }

  onClick = () => this.props.addPlugin(this.props.plugin)

  render() {
    const { name } = this.props.plugin
    return <ListItem onClick={this.onClick}/>
  }
}

const mapDispatchToProps = {
  addPlugin,
}

export default connect(null, mapDispatchToProps)(PluginListItem)

我的问题是,当我在 PluginList 中使用 PluginListItem 时,我收到一个奇怪的类型错误抱怨丢失的道具:

src/plugins/PluginList/PluginListItem/PluginListItem.jsx:8
  8:   props: { plugin: Plugin, addPlugin: Plugin => void }
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ property `addPlugin`. Property not found in
 25:           <PluginListItem plugin={plugin} key={plugin.elementName} />
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ props of React element `PluginListItem`. See: src/plugins/PluginList/PluginList.jsx:25

奇怪的是,它完全适用于其他redux连接组件......