Size: a a a

JavaScript Developers

2019 June 23

Н

Нияз in JavaScript Developers
Там есть артикль про жизненный цикл компонентов
источник

NO

Nikita Omen in JavaScript Developers
Нашел. Не знал :) спасибо
источник

Н

Нияз in JavaScript Developers
Всегда пожалуйста!
источник

DM

Daniel Manasov in JavaScript Developers
Libron FCB
Всем привет, подскажите, на сколько чревато использование async/await в ComponentDidMount в React.js ?

 async componentDidMount() {
const data1 = await this.props.fetchData();
const data2 = await this.props.fetchData1(data1);
const data3 = await this.props.fetchData2(data2);
console.log(data3);
}


Основная цель: Дождаться загрузки всех данных перед рендером. (цепочка асинхронных действий)
Так обычный же паттерн - перед запросами ставишь state: loading, после - убираешь. В рендере смотришь на него и не показываешь ничего
источник

NO

Nikita Omen in JavaScript Developers
Ну чёт почитал объяснения, с ридаксом это не очень актуально
источник

DM

Daniel Manasov in JavaScript Developers
Nikita Omen
Ну чёт почитал объяснения, с ридаксом это не очень актуально
Покажи, вроде везде запросы в маунте
источник

NO

Nikita Omen in JavaScript Developers
https://github.com/reactjs/reactjs.org/issues/302
Пишут, что связано со стейтом, и создавать стейт с двнными в конструкторе при асинхронном запросе может не сработать
источник

NO

Nikita Omen in JavaScript Developers
Когда ты Стейт не используешь для хранения данных - становится не актуально
источник

LF

Libron FCB in JavaScript Developers
Да запросы всегда в маунте, просто когда необходимо дожидаться данных перед тем как сделать другой, componenDidMount уже не актуален, ибо срабатывает один раз.
источник

DM

Daniel Manasov in JavaScript Developers
Libron FCB
Да запросы всегда в маунте, просто когда необходимо дожидаться данных перед тем как сделать другой, componenDidMount уже не актуален, ибо срабатывает один раз.
Данные для запроса меняются?
источник

LF

Libron FCB in JavaScript Developers
Daniel Manasov
Данные для запроса меняются?
да, один зависит от другого
источник

DM

Daniel Manasov in JavaScript Developers
Libron FCB
да, один зависит от другого
То есть ты делаешь новый запрос при изменении какого-то значения в сторе?
источник

LF

Libron FCB in JavaScript Developers
Daniel Manasov
То есть ты делаешь новый запрос при изменении какого-то значения в сторе?
Код образно такой:
async componentDidMount() {
const data1 = await this.props.fetchData();
const data2 = await this.props.fetchData1(data1);
const data3 = await this.props.fetchData2(data2);
console.log(data3);
}
источник

DM

Daniel Manasov in JavaScript Developers
Почему срабатывание лишь один раз не работает для тебя?
источник

DM

Daniel Manasov in JavaScript Developers
Кажется понял, у тебя компонент слишком умный становится
источник

LF

Libron FCB in JavaScript Developers
Потому что в didMount у меня запускаются эти три экшина а дальше фиг пойми кто первый завершит, так как они асинхронные. If ы тут не помогут
источник

DM

Daniel Manasov in JavaScript Developers
Libron FCB
Потому что в didMount у меня запускаются эти три экшина а дальше фиг пойми кто первый завершит, так как они асинхронные. If ы тут не помогут
Так await задаёт порядок
источник

LF

Libron FCB in JavaScript Developers
Daniel Manasov
Так await задаёт порядок
код выше должен решить мою проблему, не пробовал. Вопрос был такой: насколько правильно так делать ? )
никогда не видел async ComponentDidMount
источник

ММ

Марсель Мелисов in JavaScript Developers
Libron FCB
Код образно такой:
async componentDidMount() {
const data1 = await this.props.fetchData();
const data2 = await this.props.fetchData1(data1);
const data3 = await this.props.fetchData2(data2);
console.log(data3);
}
Вот тут код как срабатывает?
Отправляется первый запрос, получает ответ. Обрабатывается. И потом же второй? Либо сразу после отправления 1го запроса, идет 2ой запрос?
источник

DM

Daniel Manasov in JavaScript Developers
Libron FCB
код выше должен решить мою проблему, не пробовал. Вопрос был такой: насколько правильно так делать ? )
никогда не видел async ComponentDidMount
Должен решить, асинхронные запросы в маунте - норма
источник