привет, отреагируйте, сообщество администратора,
Я хочу использовать кнопку выхода из системы с пользовательским компонентом и маршрутизатором. Я проверил документацию, но не нашел никакого решения.
, пожалуйста, предложите мне, как я могу его использовать. ниже я добавил свой код.
Администратор 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;