Его общая проблема, React Native пытается отобразить до того, как значения были получены из AsyncStorage. Я видел решения для этого в нескольких местах, но по какой-то причине это просто не работает для меня. Может быть, потому что я использую React Native 25.1? Он просто застрял на «Загрузка ...» на неопределенный срок. Если я запускаю консольный журнал на рендеринг, чтобы показать isLoading (без метода if
), он возвращает false
, а затем true
, поэтому теоретически он должен работать. Но с помощью метода if
он застрял на «Загрузка» навсегда, а также журнал только возвращает false.Реагировать Собственный ожидание AsyncStorage для получения значения
import React, { Component } from 'react';
import {
Text,
View,
AsyncStorage
} from 'react-native';
class MainPage extends Component {
constructor(props: Object): void {
super();
this.state = {
isLoading: false,
};
}
componentWillMount() {
AsyncStorage.getItem('accessToken').then((token) => {
this.setState({
isLoading: false
});
});
}
render() {
if (this.state.isLoading) {
return <View><Text>Loading...</Text></View>;
}
// this is the content you want to show after the promise has resolved
return <View/>;
}
});
Пробовали ли вы поставить код в 'componentDidMount'? – zavtra