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

问题描述 投票:0回答:2

我正在使用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组件吗?索引组件可能有错误吗?

在此先感谢任何帮助:)

ruby-on-rails react-router react-rails
2个回答
1
投票

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

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

或者在qazxsw poi中包裹你qazxsw poi

Route

这是div


0
投票

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

我的问题是我有一个添加了两个元素的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'))
© www.soinside.com 2019 - 2024. All rights reserved.