Javascript 使用react引导导航栏链接到不同页面给定错误:未捕获类型错误:router.createHref不是函数

Javascript 使用react引导导航栏链接到不同页面给定错误:未捕获类型错误:router.createHref不是函数,javascript,reactjs,react-router,react-bootstrap,react-router-v4,Javascript,Reactjs,React Router,React Bootstrap,React Router V4,我正在尝试迁移到react路由器v4。我终于让路由本身手动工作了(当我输入特定的url时),但是现在我在通过导航栏链接页面时遇到了问题 以前,我只是在NavItem中使用LinkContainer,但现在这样做时,我得到了错误: 未捕获类型错误:router.createHref不是函数 在LinkContainer.render上(LinkContainer.js:112) 在ReactCompositeComponent.js:796 在measureLifeCyclePerf时(React

我正在尝试迁移到react路由器v4。我终于让路由本身手动工作了(当我输入特定的url时),但是现在我在通过导航栏链接页面时遇到了问题

以前,我只是在NavItem中使用LinkContainer,但现在这样做时,我得到了错误:

未捕获类型错误:router.createHref不是函数 在LinkContainer.render上(LinkContainer.js:112) 在ReactCompositeComponent.js:796 在measureLifeCyclePerf时(ReactCompositeComponent.js:75) 在ReactCompositeComponentWrapper.\u RenderValidatedComponentWithoutownerContext(ReactCompositeComponent.js:795) 在ReactCompositeComponentWrapper.\u renderValidatedComponent(ReactCompositeComponent.js:822) 在ReactCompositeComponentWrapper.PerformitialMount(ReactCompositeComponent.js:362)处 位于ReactCompositeComponentWrapper.mountComponent(ReactCompositeComponent.js:258) 在Object.mountComponent(ReactReconciler.js:46) 位于ReactDOMComponent.mountChildren(ReactMultiChild.js:238) 在ReactDOMComponent.\u createInitialChildren(ReactDOMComponent.js:697)

当我在谷歌上搜索的时候,我没有发现任何东西

这是我目前的代码:

// the Navbar's code
export default class NavigationBar extends Component{
    render(){
        return (
        <Navbar collapseOnSelect>
            <Navbar.Header>
              <Navbar.Brand>
                <a href="#">My App</a>
              </Navbar.Brand>
              <Navbar.Toggle />
            </Navbar.Header>
            <Navbar.Collapse>
              <Nav>
                <LinkContainer to="/page1"><NavItem>Page1</NavItem></LinkContainer>
                <LinkContainer to="/page2"><NavItem>Page2</NavItem></LinkContainer>
              </Nav>

            </Navbar.Collapse>
          </Navbar>
        );
    }
}

//routing code
ReactDOM.render(
         <Router>

             <div>
            <NavigationBar />
             <Route path="/" component={Home}/>
            <Route path="/page1" component={Page1}/>
            <Route path="/page2" component={Page2}/>
             </div>
    </Router>,
    document.getElementById('root')
);
//导航栏的代码
导出默认类NavigationBar扩展组件{
render(){
返回(
第1页
第2页
);
}
}
//路由代码
ReactDOM.render(
,
document.getElementById('root'))
);

关于如何解决这个问题有什么想法吗?

react路由器引导程序还不支持v4

试试这个问题:

import React, { PropTypes } from 'react';
import { NavLink } from 'react-router-dom';

const propTypes = {
  to: PropTypes.string.isRequired,
  activeClassName: PropTypes.string,
  children: PropTypes.node.isRequired,
  exact: PropTypes.bool
};

function MenuLink({ to, activeClassName = 'active', exact, children }) {
  return (
    <li>
      <NavLink exact={exact} to={to} activeClassName={activeClassName}>{children}</NavLink>
    </li>
  );
}

MenuLink.propTypes = propTypes;
import React,{PropTypes}来自'React';
从'react router dom'导入{NavLink};
常量属性类型={
收件人:PropTypes.string.isRequired,
activeClassName:PropTypes.string,
子项:PropTypes.node.isRequired,
精确:PropTypes.bool
};
函数MenuLink({to,activeClassName='active',exact,children}){
返回(
  • {儿童}
  • ); } MenuLink.propTypes=propTypes;
    用法:

    <MenuLink exact to='/'> Home </MenuLink>
    
    主页
    
    或其他一些:

    我看到了完全相同的错误,但在react router bootsrap中没有看到。对我来说,这里的问题是我没有将导入更改为dom

    我变了

    从'react router'导入{Link}

    从'react router dom'导入{Link}