未捕获错误:您不应该使用 或者在外面使用路由器()

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了未捕获错误:您不应该使用 或者在外面使用路由器()相关的知识,希望对你有一定的参考价值。

我正在使用react-rails gem(v 2.3)和react-router-dom(v 4.2.2)并将我的根组件App安装在我的根Rails路由上。

这就是它的安装方式:

<%= react_component("App") %>

这是组件本身:

const Router     = ReactRouterDOM.BrowserRouter,
  Route      = ReactRouterDOM.Route;

class App extends React.Component{
  render() {
    return (
      <Router>
        <Route path="/" component={Index}>
        </Route>
      </Router>
    );
  }
}

我一直收到以下错误:

Uncaught Error: You should not use <Route> or withRouter() outside a <Router>

我在上面的路由器组件中没有使用Route组件吗?索引组件可能有错误吗?

在此先感谢任何帮助:)

答案

也许这不是正确的错误..尝试覆盖您的应用程序

class App extends React.Component{
  render() {
    return (
      <Router>
        <Route path="/" component={Index} />
      </Router>
    );
  }
}

或者在qazxsw poi中包裹你qazxsw poi

Route

这是div

另一答案

我遇到了类似的错误消息,但在不同的上下文中。我在这里发布我的修复,以防其他人遇到我所做的相同情况。

我的问题是我有一个添加了两个元素的App.js,但我忘了更新我的index.js文件。它曾经是:

class App extends React.Component{
  render() {
     return (
       <Router>
         <div>
            <Route path="/" component={Index} />
         </div>
       </Router>
    );
  }
}

我更新到:

docs

还必须添加以下import语句:

ReactDOM.render(<App />, document.getElementById('root'))

以上是关于未捕获错误:您不应该使用 或者在外面使用路由器()的主要内容,如果未能解决你的问题,请参考以下文章

您不应该使用 react-router-dom 在路由器外部使用 Link

如何在外部 npm 包中使用 React 的 Link 组件而不会出现错误:不变的“你不应该在路由器外部使用链接”

未捕获的类型错误:无法使用“in”运算符在未定义的 vue 路由器中搜索“路径”

Vue 路由:未捕获类型错误:window.Vue.use 不是函数

vuejs 3:未捕获的类型错误:对象(...)不是函数[重复]

未捕获的类型错误:无法在方法中读取 null 的属性“classList”