как использовать кнопку выхода без authProvider - PullRequest
1 голос
/ 03 марта 2020

привет, отреагируйте, сообщество администратора,

Я хочу использовать кнопку выхода из системы с пользовательским компонентом и маршрутизатором. Я проверил документацию, но не нашел никакого решения.

, пожалуйста, предложите мне, как я могу его использовать. ниже я добавил свой код.

Администратор root Компонент

Это компонент администратора.

import React from 'react';
import { Admin, Resource } from 'react-admin';
import jsonServerProvider from 'ra-data-json-server';
import  { UserList } from "../users/users"; 
import Dashboard from './dashboard'; 
import MyLogoutButton from '../auth/logout'; 

const authProvider = {
    logout: params => Promise.resolve(),
};

function Adminroot(props) {
    const dataProvider = jsonServerProvider('http://jsonplaceholder.typicode.com');

    return (
        <div>
            <Admin logoutButton={MyLogoutButton} loginPage={false} dashboard={Dashboard} dataProvider={dataProvider}>
                <Resource name="users" list={UserList} />
            </Admin>
        </div>
    );

}

export default Adminroot;

Компонент MyLogoutButton

Этот компонент содержит код по умолчанию, который обеспечиваетact-admin для выхода из системы.

Теперь, когда нажимается кнопка выхода из системы. по умолчанию перенаправляет на / логин URL. Там визуализируется компонент Logout (ниже написан код компонента logout), который содержит logi logi c и перенаправляет на / signin , но показывает пустую страницу, пока я не обновлю sh страницу.

import React, { forwardRef } from 'react';
import { useLogout } from 'react-admin';
import MenuItem from '@material-ui/core/MenuItem';
import ExitIcon from '@material-ui/icons/PowerSettingsNew';

const MyLogoutButton = forwardRef((props, ref) => {
    const logout = useLogout();
    const handleClick = () => logout();
    return (
        <MenuItem
            onClick={handleClick}
            ref={ref}
        >
            <ExitIcon /> Logout
        </MenuItem>
    );
});

export default MyLogoutButton;

Компонент выхода из системы

import React , { useContext } from 'react';
import { AppContext } from '../../AppContext';
import  { Redirect } from 'react-router-dom';

function Logout(props){
    const {handleSignOut} = useContext(AppContext);
    handleSignOut();
    return props.history.push('/signin');
}
export default Logout;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...