Reactjs 将React组件路由到部分rails?
我的Rails 4.2应用程序中有一个React组件,通过Reactjs 将React组件路由到部分rails?,reactjs,react-router,ruby-on-rails-4.2,partials,Reactjs,React Router,Ruby On Rails 4.2,Partials,我的Rails 4.2应用程序中有一个React组件,通过contact/new将其设置为NewContactForm,并以这种方式独立运行。然而,我一直在寻找将其注入到现有Rails页面(listings/new或listings/edit,两者都通过\u表单partial)中,以便该信息与之关联,从而获得更好的流。目前,我的路由要求我有一个精确的路径来渲染组件;我有没有办法在一个部分中渲染我的组件?我知道这样做的目的是能够在任何地方使用应用程序,我只是不确定在这种情况下路由是如何处理的(除非
contact/new
将其设置为NewContactForm
,并以这种方式独立运行。然而,我一直在寻找将其注入到现有Rails页面(listings/new
或listings/edit
,两者都通过\u表单
partial)中,以便该信息与之关联,从而获得更好的流。目前,我的路由要求我有一个精确的路径来渲染组件;我有没有办法在一个部分中渲染我的组件?我知道这样做的目的是能够在任何地方使用应用程序,我只是不确定在这种情况下路由是如何处理的(除非views/contacts/new
转换为partial并传入?)
app.jsx:
import React from 'react'
import { Switch, Route } from 'react-router-dom'
import WarehouseReport from './reports/warehouse'
import NewContactForm from './contacts/new-contact-form'
export default function App() {
return <Switch>
<Route exact path='/:account_id/warehouses/:warehouse_id/warehouse_report' component={ WarehouseReport }/>
<Route exact path='/:account_id/contacts/new' component={ NewContactForm }/>
</Switch>
}
从“React”导入React
从“react router dom”导入{交换机,路由}
从“./reports/warehouse”导入WarehouseReport
从“./contacts/new contact form”导入新联系人表单
导出默认函数App(){
返回
}
您似乎混淆了组件内部的路由器和rails路由器
此处指定的路由将处理组件本身内部的路由。这意味着单击组件内部的任何内容都将呈现组件本身中的其他内容,但不会影响rails服务器提供的路由
假设组件需要自己的路由的场景是,您有一个多步骤形式的组件,并且您使用路由器来处理您所处的步骤
要在部分本身内部渲染组件,似乎最简单的方法是使用react rails和react helpers的组合
gem'react rails'
现在我正在Rails应用程序中通过
webpacker
生成React。添加新的gem会影响我现有的组件吗?我个人没有使用过这种方法,但我不理解webpacker的功能。构建时,它是否会在packs文件夹中为您创建一个新的js文件,其中包含组件文件名?否,它只是将React的静态模块绑定器创建到资产管道中。但是根据您链接的文章,在构建之后,它确实在javascript/packs
或javascript/components
文件夹中创建了一个app jsx包。您可以使用webpacker帮助程序调用它,例如:
。是。您可以在React中制作两个单独的组件,而无需路由器。然后,只需使用webpacker帮助程序在需要的地方调用每一个。