Как сделать редирект после чистки локального хранилища? - PullRequest
2 голосов
/ 29 февраля 2020

Как, после очистки локального хранилища, перенаправить на нужную страницу? Теперь возникает проблема, пользователь нажимает кнопку - Выход, localalstorage очищается, но перенаправление не происходит.

const onHandleSignOut = () => {
    localStorage.removeItem('session');
    return <Redirect to="/auth" />
}

<li className="header__mainmenu-item" onClick={() => onHandleSignOut()}>
    <FaSignOutAlt />
</li>

Ответы [ 4 ]

1 голос
/ 29 февраля 2020

Я сделаю это так

 const [redirct, setRedirct] = useState(false)
    const onHandleSignOut = () => {
        localStorage.removeItem('session');
       setRedirct(true)
    }

В твоем доме

{redirct?<Redirect to="/auth" />:''}
<li className="header__mainmenu-item" onClick={() => onHandleSignOut()}>
    <FaSignOutAlt />
</li>
0 голосов
/ 29 февраля 2020

вы можете создать компонент для перенаправления после очистки хранилища:

import { NavigationEvents } from 'react-navigation';
class Logout extends Component {

   _clearAsyncStorage = async () => {
     AsyncStorage.clear();
    };

    render() {
        const { navigate } = this.props.navigation;
         return (
         <View>
            <Text>Logout</Text>
              <NavigationEvents onDidFocus={() => navigate('Login')} />
            </View>
         );
    }
 }

Убедитесь, что вы создали навигацию внутри компонента навигации:

вы можете использовать реагировать на навигацию v4 или v5 для создания стека навигации:

Для меня добавлена ​​ссылка выхода из ящика внутри ящика:

const AppDrawerNavigator = createDrawerNavigator(
 .... other components 
  Déconnexion: {
  screen: Logout,
  navigationOptions: {
    drawerIcon: ({ tintColor }) => (
      <Icon
        name={Platform.OS === 'ios' ? 'ios-exit' : 'md-exit'}
        size={30}
        style={styles(tintColor).drawerIcons}
        type="material"
      />
    ),
  },
)
0 голосов
/ 29 февраля 2020

Вы можете перенаправить напрямую, используя window.location.href = '/ ulr_to_redirect';

0 голосов
/ 29 февраля 2020
this.props.history.push("/auth");

надеюсь, это поможет вам ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...