Я пытаюсь создать страницу входа в систему, где userId будет сохранен через asyncstorage и получит это значение на перенаправленной странице и поместит его в скрытый атрибут, который будет использоваться для другого нажатия кнопки.
Вотмоя TouchableOpacity на странице входа, где она имеет функцию onPress
<TouchableOpacity
style={styles.userBtn}
onPress={this._login}
><Text style={styles.btnText}>Log In</Text>
</TouchableOpacity>
При нажатии / нажатии вот функция
_login = async () => {
await AsyncStorage.setItem('isLoggedIn', '1');
fetch('http://XXX.XXX.XXX.X:XX/api/public/signin', {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: this.state.email,
password: this.state.password,
})
})
.then((response) => response.json())
.then((responseJson) => {
if (responseJson['success'] == true) {
AsyncStorage.setItem('authId', responseJson['authId'])
this.props.navigation.navigate('Details')
}else{
AsyncStorage.clear();
alert('Username or Password is incorrect');
}
})
.catch((error) => {
console.error(error);
});
}
А вот моя функция страницы сведений для получения authID
Это перед render ()
constructor(props){
super(props);
this.state={currentTime: null, currentDay: null, longitude: 0, latitude: 0, error: null }
this.daysArray = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'];
this._getUserId();
}
и после render ()
_getUserId = async() => {
const userId = await AsyncStorage.getItem('authId');
alert(userId);
}
Так что в основном перед компонентом render () в конструкторе я вызывал функцию, котораянаходится после части render (). Но это всегда возвращает мне нулевое предупреждение.
Извините, но это всего лишь неделя с тех пор, как я начал учиться реагировать на родной язык. И я практикую свои навыки, поэтому извиняюсь, если что-то не так с тем, как я это объясняю, и если я спрашиваю об этом.