失败的道具类型:道具`history`在`Router`中标记为必需,但其值为'undefined`

时间:2017-08-16 13:50:45

标签: reactjs router

道具类型失败:道具{{'{{ item.type}}'}}history标记为必需,但其值为Router。     在路由器中     --------------------------------------------------     /////index.js

undefined

4 个答案:

答案 0 :(得分:0)

这是react link到react-router-redux v4的正确例子。您必须使用react-router-redux中的ConnectedRouter并传递history。我昨天根据这个例子配置了我的项目,它工作正常。

答案 1 :(得分:0)

在React router v4中,您的配置应如下所示。

 import { BrowserRouter, Route, Switch } from 'react-router-dom';

 <Provider store={createStoreWithMiddleware(reducers)}>
    <BrowserRouter>
      <div>
        <Switch>
            <Route path="/api/:id" component={ComponentOne} />
            <Route path="/" component={Home} />
        </Switch>
      </div>
    </BrowserRouter>
  </Provider>

自上一版本以来,API已更改。另请注意,订单很重要。将最具体的路径保留在顶部。

答案 2 :(得分:0)

答案 3 :(得分:0)

在我的项目中,我分两步消除了这种错误:

  1. 从'history / createBrowserHistory'导入导入createBrowserHistory;并声明const customHistory = createBrowserHistory();像这样:

    import  { BrowserRouter as StaticRouter, Router, Switch, Route, Link } from 'react-router-dom';
    import  createBrowserHistory from 'history/createBrowserHistory';
    const   customHistory = createBrowserHistory();
    
  2. 看起来有必要将历史属性添加到路由器:

    <Router history={customHistory}>
    <div>
        <Link to={'/.../' + linkName1}>
            {itemName1}
        </Link>
        <Link to={'/.../' + linkName2}>
            {itemName2}
        </Link>
    </div>