Rails 5.1 + Webpacker + React-เราเตอร์

ฉันกำลังพยายามใช้ทั้งสามสิ่งนี้ในโปรเจ็กต์ใหม่ ฉันต้องการจัดการการกำหนดเส้นทางโดยใช้ react-router

ด้วยการตั้งค่า 'นอกกรอบ' มันทำงานได้ดีเมื่อฉันเริ่มต้นเช่น localhost:3000/ จากนั้นคลิกเพื่อดูตัวอย่าง Link การกำหนดเส้นทางไปยังหน้า signup แต่เมื่อฉันพยายามป้อน localhost:3000/signup มันบอกว่าไม่มีเส้นทาง (เนื่องจากไม่มีเส้นทางดังกล่าวที่สร้างโดยใช้ Rails)

ฉันจะบูรณาการสิ่งนี้ได้อย่างไร


person Ancinek    schedule 11.07.2017    source แหล่งที่มา


คำตอบ (2)


คุณสามารถทำได้โดยใช้ react-router-dom กับ HashRouter แทน BrowserRouter

person elquimista    schedule 25.07.2017

วิธีแก้ปัญหาที่เหมาะสมในการจัดการสถานการณ์นี้คือการกำหนดเส้นทาง React ทั้งหมดของคุณภายในไฟล์ Rails config/routes.rb

ประเด็นก็คือ 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' นั่นก็จะทำงาน

person MarkSkayff    schedule 03.06.2020