我正在验证所有道具的错误:
警告:propType失败:assetType
中未指定必需的道具AssetManagementShow
。检查RoutingContext
的呈现方法。
警告:propType失败:assetTypes
中未指定必需的道具AssetManagementTransactionsFecher
。检查RoutingContext
的呈现方法。
我的路线看起来像这样:
<Route path='asset_management' component={AssetManagementContainer} >
<IndexRoute component={AssetManagementIndex} />
<Route path=':name' component={AssetManagementTransactionsFetcher}>
<IndexRoute component={AssetManagementShow} />
<Route path=':transactionKey' component={TransactionsShow} />
</Route>
</Route>
我在尝试渲染AssetManagementShow(和TransactionsShow)时遇到此错误。我从AssetManagementTransactionsFetcher和AssetManagementShow的道具中收到错误。
AssetManagementContainer仅提取数据并使用React.cloneElement呈现子路由。 AssetManagementTransactionsFetcher执行相同操作 - 它获取数据并使用新道具呈现子路径。
我认为这是问题出现的地方。当我使用React.cloneElement将props传递给子路由时,子路由不会正确验证其PropType。
我正在运行react-router v1.0.3
答案 0 :(得分:2)
这就是prop类型验证与cloneElement
一起使用的方式 - 验证是在元素创建时完成的,而不是在mount上完成。
此处提供了更多详细信息和参考资料:https://github.com/rackt/react-router/blob/master/upgrade-guides/v1.0.0.md#routehandler。