Как мне управлять аутентификацией с помощью useContext? - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь сохранить «состояние», в котором я могу сохранить, вошел ли пользователь в систему или нет. Но теперь проблема в том, что если я перезагружаю приложение и я вошел в систему, оно должно go на домашний экран, а когда я не вошел в систему, я хочу go для входа в систему.

Это мой главный навигатор;

const AppMenu = createDrawerNavigator(
    {
        agendaMenu: AgendaNavigator,
        buildingMenu: BuildingNavigator,
        agendaTabScreen: AgendaTabScreen,
        loginScreen: LoginScreen,
        settingsScreen: SettingsScreen,
    },
    {
        initialRouteName: settings.LoggedIn ? 'agendaTabScreen' : 'loginScreen',
        contentComponent: props => <MenuSideBar {...props} />,
    },
)

export default createAppContainer(AppMenu)

Это мой файл SettingsContext;

import React from 'react'
import settingsDao from '../database/SettingsDao'
const initSettings = {
    username: '',
    password: '',
    loggedIn: false,

}
const SettingsContext = React.createContext()

const settingsReducer = (state, action) => {
    switch (action.type) {
        case 'store':
            const newSettings = { ...state, ...action.payload }
            settingsDao.storeSettings(newSettings)

            return newSettings
        default:
            return state
    }
}

export const SettingsProvider = ({ value, children }) => {
    const [settings, dispatch] = React.useReducer(settingsReducer, {
        ...initSettings,
        ...value,
    })

    return (
        <SettingsContext.Provider value={{ settings, dispatch }}>
            {children}
        </SettingsContext.Provider>
    )
}

export default SettingsContext

Есть предложения?

...