Я пытаюсь извлечь данные из URL и затем сохранить их в AsyncStorage в React Native.
Это экран, на котором происходит "волшебство":
class CardsScreen extends Component {
constructor(props) {
super(props);
this.state = {
isLoading: true,
dataSource: null,
}
}
componentDidMount() {
return fetch(REQUEST_URL)
.then((response) => response.json())
.then((responseData) => {
this.setState({
isLoading: false,
dataSource: responseData,
});
})
.catch((error) => {
console.log(error)
});
}
render() {
if (netStatus) {
if (this.state.isLoading) {
return (
<View style={styles.container}>
<ActivityIndicator/>
</View>
)
} else {
let data = this.state.dataSource.map((val, key) => {
return <View key={key} style={styles.itemWrapper}>
<View style={styles.titleWrapper}>
<Text style={styles.content}>{val.type}</Text>
<Text style={styles.title}>{val.title}</Text>
<Text style={styles.content}>{val.date}</Text>
</View>
<View style={styles.imageWrapper}>
<Image
style={styles.image}
source={{uri: val.image}}
/>
</View>
<View style={styles.contentWrapper}>
<Text style={styles.content}>{val.adress}</Text>
<Text style={styles.content}>{val.text}</Text>
</View>
</View>
})
return (
<ScrollView contentContainerStyle={styles.containerScroll}>
{data}
</ScrollView>
);
}
} else {
return <View style={styles.contentWrapper}>
<Text style={styles.content}>Not connected!</Text>
</View>
}
}
};
Этот код печатает данныеесли устройство подключено к интернету.Что мне нужно сделать, это если устройство подключено к Интернету, получить данные с URL-адреса и сохранить (или перезаписать) их в AsyncStorage, а затем распечатать данные на экране.Если устройство не подключено к Интернету, просто распечатайте данные из AsyncStorage.
Это пример .json, по которому я звоню с URL:
[
{
"type": "Party",
"title": "New party comming to town!",
"adress": "New Yrok",
"date": "20. 4. 2019.",
"image": "https:\/\/some-url.com\/some-image.jpg",
"text": [
"Some description"
],
"_id": "events_1"
}
]
Я не могу найти аналогичное решение, поэтомуЯ был бы рад, если бы у кого-то был учебник, который мог бы помочь мне в этом.
РЕДАКТИРОВАТЬ (чуть больше объяснений):
Вот что я хочу сделать: ЕслиУстройство подключено к Интернету, обновите AsyncStorage с данными из URL, а затем отобразите эти новые данные в AsyncStorage.Если устройство не подключено к Интернету, просто отобразите данные AsyncStorage.И есть несколько «событий», а не одно, как в примере.