react-admin 2.0.0如何将所有管理页面挂载在/admin路径下?
解决react-admin 2.0.0中管理页面路径统一在/admin下的问题
在react-admin 2.0.0版本中,你遇到的问题是因为Admin组件内部的资源路由默认基于根路径(/)生成,没有继承你挂载Admin的/admin前缀。下面给你两种简单有效的解决方法:
方法一:给Admin组件添加basename属性
直接在Admin组件上指定basename="/admin",这样所有内部资源的路由都会自动带上这个前缀。修改后的代码如下:
<Admin title="Admin" dashboard={Dashboard} dataProvider={restClient} history={history} basename="/admin" > <Resource name="users" list={UserList} /> </Admin>
这个方法最直接,不需要修改你现有的history创建逻辑,适合已经通过外部路由(比如react-router的Route)将Admin挂载在/admin路径下的场景。
方法二:在创建history时配置basename
如果你是手动创建history对象(比如使用history库的createBrowserHistory),可以在创建时直接指定basename,这样整个Admin应用的路由都会基于这个前缀:
import { createBrowserHistory } from 'history'; // 创建带basename的history const history = createBrowserHistory({ basename: '/admin' }); // 传递给Admin组件 <Admin title="Admin" dashboard={Dashboard} dataProvider={restClient} history={history} > <Resource name="users" list={UserList} /> </Admin>
注意事项
- 不要同时使用外部路由的
path="/admin"和Admin的basename="/admin",否则会出现/admin/admin/users这类重复前缀的错误路径。 - 修改后,你的Admin主页面路径保持
/admin,点击Users侧边栏后路径会变成/admin/users,完全符合你的需求。
内容的提问来源于stack exchange,提问作者swrobel
相关产品推荐
相关产品推荐

