1

我用反应管理员建立了一个网站。现在我想从 react admin 添加基本的登录页面。

为此,我添加了authProvider传递所有用户名和密码组合的简单方法。但是现在当我点击注销按钮时,登录页面只显示一秒钟,然后网站总是跳回仪表板。

我已经尝试了很多,但找不到错误。也许有人知道它可能是什么或以前遇到过同样的问题?这是我来自 App.js 的代码片段:

function App() {
    return(
      <Admin
        dashboard={Dashboard}
        authProdiver={authProvider}
        dataProvider={dataProvider}
        customRoutes={customRoutes}
        theme={theme} 
        layout={MyLayout}
      >

        <Resource
          ...
        />
          ...
      </Admin> 
      );
    }
    
export default App;

我添加了authProvider教程中的基本内容:

const authProvider = {
  // authentication
  login: ({ username }) => {
    localStorage.setItem('username', username);
    // accept all username/password combinations
    return Promise.resolve();
},

logout: () => {
  localStorage.removeItem('username');
  return Promise.resolve();
},
checkError: () => Promise.resolve(),
checkAuth: () =>
  localStorage.getItem('username') ? Promise.resolve() : Promise.reject(),
getPermissions: () => Promise.reject('Unknown method'),
};

export default authProvider;

我自己的布局是:

MyLayout.js:
import React from 'react';
import TreeMenu from '@bb-tech/ra-treemenu';
import { Layout } from 'react-admin';
import MyAppBar from './MyAppBar';
import { ProfileProvider } from './MyProfile/Profile.js';

const MyLayout = (props) => (
  <ProfileProvider>
    <Layout {...props} appBar={MyAppBar} menu={TreeMenu} />
  </ProfileProvider>
);

export default MyLayout;

MyAppBar.js:
import React from "react";
import { AppBar } from "react-admin";
import MyUserMenu from "./MyUserMenu";

const MyAppBar = props => 
<AppBar {...props} 
    userMenu={<MyUserMenu />} 
/>;

export default MyAppBar;

MyUserMenu.js:
import React from 'react';
import { UserMenu, MenuItemLink} from 'react-admin';
import SettingsIcon from '@material-ui/icons/Settings';

const MyUserMenu = (props) => {
  return (
    <UserMenu  {...props}>
      <MenuItemLink
        to="/my-profile"
        primaryText="Mein Profil"
        leftIcon={<SettingsIcon />}
      />
    </UserMenu>
  );
};

export default MyUserMenu;
4

0 回答 0