169 похожих чатов

Всем привет))Задачка на смекалку, есть простой компонент который отображает 2

экрана. Но данные для экранов появляются только после запроса в 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>
)
);
}
}

2 ответов

15 просмотров

вариантов на самом деле не так много: 1) добавить еще одну зависимость (т.е. проверку что необходимые данные присутствуют и в этот момент рендерить экран) 2) выставить initial value в true

Артем- Автор вопроса
Vitaliy Ponomarev
вариантов на самом деле не так много: 1) добавить...

Спасибо, 2 вариант видимо из-за присутствия redux-persist отпадает) в сторону первого покапаю))

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта