2

我正在尝试在一个新项目中使用所有这三个。我想使用react-router.

使用“开箱即用”设置,当我从例如开始localhost:3000/然后单击例如Link路由到signup页面时,它可以正常工作。但是当我尝试输入时localhost:3000/signup,它说没有路线(因为没有使用 Rails 创建的路线)。

我怎样才能整合这个?

4

2 回答 2

3

您可以通过使用react-router-domwithHashRouter而不是来实现这一点BrowserRouter

于 2017-07-25T08:16:53.033 回答
0

处理这种情况的正确解决方案是在 Rails config/routes.rb 文件中定义所有 React 路由。

问题是 Rails 必须知道 React 正在处理的路由,否则它会尝试接管并处理您的应用程序的路由。

所以,想象一下你的 React 的前端控制器路由是这样的:root 'pages#index'并且在 config/routes.rb 中看起来像这样:

Rails.application.routes.draw do
    root 'pages#index'
end

所以,为了让你的 React 路由正常工作,而不让 Rails 干扰,你可以这样做:

Rails.application.routes.draw do
    root 'pages#index'
    get 'admin', to: 'pages#index'
    get 'admin/dashboard', to: 'pages#index'
    get 'admin/user', to: 'pages#index'
end

您只需将所有 React 路由重定向到前端控制器“pages#index”。这将完成这项工作。

于 2020-06-03T22:35:09.620 回答