我正在使用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连接组件......