Поскольку вы не хотите использовать в своем приложении избыточность, используйте AsyncStorage в React Native.
Сначала установите npm i @react-native-community/async-storage
. Затем измените вашу _login
функцию, как показано ниже. Не используйте Promise и Async / Await и используйте только один подход .
import AsyncStorage from '@react-native-community/async-storage';
_login = async () => {
if (this.state.user.login !== "" && this.state.user.password !== "") {
this.setState({ activity: true });
try {
let response = await Axios.post(LoginAPI, this.state, {
headers: { appversion: 1.4 }
});
if (response.status == 200) {
this.setState({
activity: false,
response
});
await AsyncStorage.setItem('@Secret-Key', response);
this.props.navigation.navigate("CreateMove");
}
} catch (error) {
this.setState({ activity: false });
Alert.alert("Error", error.response.data.error);
}
} else {
Alert.alert("Support", "Email & Password field can not be empty");
}
};
Затем получите значение @Secret-Key
из экрана выхода из системы.
_retrieveData = async () => {
try {
const value = await AsyncStorage.getItem("@Secret-Key");
if (value !== null) {
// You can access your data
}
} catch (error) {
console.log(error);
}
};
Надеюсь, это поможет вам. Не стесняйтесь сомнений.