это работает для меня.
Я предполагаю, что вы вызовете API, который даст вам ответ с успехом или неавторизованным, в зависимости от того, что мы установим значение в хранилище.
У меня естьВ данном примере с использованием axios вы можете использовать что-нибудь или какую-то другую логику.
import React, { Component } from "react";
import {
Platform,
StyleSheet,
Text,
View,
Button,
TextInput,
AsyncStorage
} from "react-native";
export default class App extends Component {
constructor(props) {
super(props);
this.state = { placeholder: "", Username: "" };
}
componentDidMount = async () => {
const lastName = await AsyncStorage.getItem("Username");
if (lastName) {
this.setState({ placeholder: lastName });
}
};
setUsername = value => {
AsyncStorage.setItem("Username", value);
this.setState({ Username: value });
};
// initialize empty text for textinputs
clearAndLogin = () => {
axios
.get("url", { params: { username: this.state.username, password: "" } })
.then(res => {
if (res.code === 200) {
AsyncStorage.setItem("Username", this.state.Username);
this.setState(
{
Username: ""
},
() => {
// change route
}
);
} else {
alert("unauthorized user");
}
});
};
render() {
return (
<View>
<TextInput
placeholder={this.state.placeholder || "first time user"}
onChangeText={Username => this.setState({ Username })}
value={this.state.Username}
style={{ width: 200, height: 44, padding: 8 }}
/>
<Button
title={"Login"}
onPress={this.clearAndLogin}
color="rgb(0, 38, 100)"
/>
</View>
);
}
}