问题描述
#5036 和 #4821 是同一个问题。
原来我想在没有身份验证的情况下在customroutes中创建路由,但是当我向带有身份验证的页面添加权限时,未经身份验证的页面会自动重定向到登录,而不会向我显示任何customroutes页面.
我尝试在权限之外返回一些资源并且它可以工作,所以错误就在那里,你必须返回一些没有必要权限的东西,否则它会立即重定向到登录。知道如何在没有身份验证的情况下保留 customroutes 中的权限和路由方案(如我的代码中所示),并且我可以访问 customroutes 中声明的路由?
import React from 'react';
import { Admin,Resource } from 'react-admin';
import adapterDataProvider from './auth/adapterDataProvider';
import i18nProvider from './i18n/es';
import categories from './categories';
import sellers from './sellers';
import MyLayout from './globalTheme/MyLayout';
import MyTheme from './globalTheme/MyTheme';
import authProvider from "./auth/authProvider";
import MyLogin from './login/MyLogin';
import { Route } from 'react-router-dom';
import SignUpForm from './login/SignUpForm';
import ForgotPasswordForm from './login/ForgotPasswordForm';
import NotFound from './globalTheme/NotFound';
import ResetPasswordForm from './login/ResetPasswordForm';
import ShopIcon from '@material-ui/icons/Shop';
import ProductCreate from './products/create';
import ProductEdit from './products/edit';
import { ProductList } from './products/products';
const App = ( ) => (
<div>
<Admin
title="Simple Comercio"
theme={ MyTheme }
disableTelemetry
catchAll={ NotFound }
authProvider= { authProvider }
i18nProvider={ i18nProvider }
layout={ MyLayout }
dataProvider={ adapterDataProvider }
loginPage={ MyLogin }
customroutes={[
<Route
exact
path="/signup"
component={(props) => <SignUpForm {...props} />}
noLayout
/>,<Route
exact
path="/forgot-password"
component={(props) => <ForgotPasswordForm {...props} />}
noLayout
/>,<Route
exact
path="/reset-password"
component={(props) => <ResetPasswordForm {...props} />}
noLayout
/>,]}
>
{ permissions => [
permissions.hasOwnProperty('admin') ?
[<Resource
name="product"
options={{ label: 'Productos',permissions: permissions }}
list={ ProductList }
create={ ProductCreate }
edit={ ProductEdit }
icon={ ShopIcon }/>,<Resource {...categories} />,<Resource {...sellers} />]
:null,permissions.hasOwnProperty('seller') ?
[<Resource
name="product"
options={{ label: 'Productos',<Resource {...categories} />]
:null,]
}
</Admin>
</div>
)
export default App;
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)