экрана. Но данные для экранов появляются только после запроса в didMount. Состояние current_project_task_loading которое отрисовывает индикатор изменяется внутри getProjectTask сначала на loading потом на success или failed) но получается так, что изначально loading состояние false отрисовываются пустые экраны, далее происходит запрос появляются данные и они по идее должны обновить экраны, и старые размонтируются, но в старых тоже идет запросы асинхронные которые когда завершаются уже экраны размонтированы соответственно ошибка, вот полюбому есть стандартная техника на такой случай))
class ProjectTaskScreen extends React.Component {
componentDidMount() {
this.props.getProjectTask(this.props.route.params);
}
render() {
return (
this.props.project_tasks.current_project_task_loading ? (
<View style={styles.container}>
<ActivityIndicator color="#009688" size="large" />
</View>
) : (
<Tab.Navigator>
<Tab.Screen name="ProjectTaskFormScreen" component={ProjectTaskFormScreen} options={{ title: 'Details' }}/>
<Tab.Screen name="ProjectTaskCommentScreen" component={ProjectTaskCommentScreen} options={{ title: 'Comments' }}/>
</Tab.Navigator>
)
);
}
}
вариантов на самом деле не так много: 1) добавить еще одну зависимость (т.е. проверку что необходимые данные присутствуют и в этот момент рендерить экран) 2) выставить initial value в true
Спасибо, 2 вариант видимо из-за присутствия redux-persist отпадает) в сторону первого покапаю))
Обсуждают сегодня