Я выбираю данные и сохраняю их в файле sqlite на мобильном телефоне.Когда этот экран вызывается, код выборки начинает вызываться функцией componentDidMount()
.Когда выборка завершена, это setState()
вызывает функцию componenDidUpdate()
(сохранение данных в sqlite, затем setState= 'isLoadingDataProgramadas: false'
), поэтому я хочу, чтобы приложение перешло на экран 'ActProgramadas'
с React-Navigation V3.Приведенное ниже решение работает, но выдает мне предупреждение:
Предупреждение: не удается обновить в существующем состоянии (например, в «render»).Методы рендеринга должны быть чистой функцией реквизита и состояния.
Как это исправить?
componentDidMount() {
this.doFetch();
}
componentDidUpdate(){
this.openBD();
this.insertSQLITE();
}
componentWillUnmount() {
this.closeDatabase();
}
render() {
if(this.state.isLoadingDataProgramadas)
return (
<View style={stylesLoading.container}>
<View>
<ActivityIndicator size="large" color="lightblue"/>
</View>
<View>
<Text style={stylesLoading.texto}>
Descargando datos...
</Text>
</View>
</View>
);
else
return(
<View>
{this.props.navigation.navigate('ActProgramadas')}
</View>
);
}