Reactjs 在非SPA中使用react路由器
我们有一个使用Laravel用PHP编写的非SPA,其中我们只在几页中使用了React 我面临以下情况:我必须创建两个视图:Reactjs 在非SPA中使用react路由器,reactjs,react-router,single-page-application,Reactjs,React Router,Single Page Application,我们有一个使用Laravel用PHP编写的非SPA,其中我们只在几页中使用了React 我面临以下情况:我必须创建两个视图: /admin/Locations /admin/UserGroups 如果用户在浏览器URL中键入,服务器将重定向到/admin/locations页面,但是,我只想呈现组件 另一方面,如果用户试图访问,服务器将重定向到/admin/userGroups页面,并且只需要呈现组件 为了构建这个应用程序,我创建了一个名为EngagementTrackerApp.js的文件(
/admin/Locations
/admin/UserGroups
如果用户在浏览器URL中键入,服务器将重定向到/admin/locations页面,但是,我只想呈现
组件
另一方面,如果用户试图访问,服务器将重定向到/admin/userGroups页面,并且只需要呈现
组件
为了构建这个应用程序,我创建了一个名为EngagementTrackerApp.js的文件(即模块的名称)。在EngagementTrackerApp.js中,我有以下代码:
render(
<BrowserRouter>
<Route path="/admin/locations" component={Locations} history={browserHistory} />
<Route path="/admin/userGroups" component={UserGroups} history={browserHistory}/>
</BrowserRouter>,
document.getElementById('view')
);
渲染(
,
document.getElementById('视图')
);
在每个页面(Locations.blade.php和UserGroups.blade.php)中,我都有一个名为
的div
它不是这样工作的,但是,为了让它工作,我需要删除其中一个路由
比如说。如果我删除路由位置,用户可以通过URL访问用户组视图:
<BrowserRouter>
<Route path="/admin/et/userGroups" component={UserGroups} history={browserHistory}/>
</BrowserRouter>
但是,如果我将两条路线放在一起,它就会停止工作:
<BrowserRouter>
<Route path="/admin/et/locations" component={Locations} history={browserHistory} />
<Route path="/admin/et/userGroups" component={UserGroups} history={browserHistory}/>
</BrowserRouter>
我的div视图始终为空
我应该怎么做,或者为什么它只对一条路由有效?您不能在
浏览器路由器中指定多条路由。你得把它们包在一个小隔间里
render(
<BrowserRouter>
<div>
<Route path="/admin/locations" component={Locations} history={browserHistory} />
<Route path="/admin/userGroups" component={UserGroups} history={browserHistory}/>
</div>
</BrowserRouter>,
document.getElementById('view')
);
渲染(
,
document.getElementById('视图')
);
如果您正在访问http://localhost/admin/userGroup:
,您的路线应该是path=“/admin/userGroups”
,而不是path=“/admin/et/userGroups”
,这只是一个打字错误。我要在问题中解决这个问题,我试过了。没有成功检查答案没有。。。我看到的是,在div内部,当我只有一个路由器时,我处于一个相反的URL中(例如,通过URL访问用户组,但是,我只是位置的路由,它在div内部显示React对象为空,并且将这些路由放在一起,它只呈现没有任何内容的div(React comment)这条规则是在什么地方写的吗?,children:node是要呈现的单个子元素。