由于RoutingContext,PropType验证引发错误

时间:2016-01-05 21:26:43

标签: reactjs react-router

我正在验证所有道具的错误:

警告: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

1 个答案:

答案 0 :(得分:2)

这就是prop类型验证与cloneElement一起使用的方式 - 验证是在元素创建时完成的,而不是在mount上完成。

此处提供了更多详细信息和参考资料:https://github.com/rackt/react-router/blob/master/upgrade-guides/v1.0.0.md#routehandler