Size: a a a

JavaScript Developers

2019 June 20

VS

Vladislav Starostenko in JavaScript Developers
источник

VS

Vladislav Starostenko in JavaScript Developers
@ishenkulovv
Здравствуйте, можете скинуть ссылку на хороший курс по React
Там найдешь много интересного.
источник

@

@ishenkulovv in JavaScript Developers
Vladislav Starostenko
Там найдешь много интересного.
спасибо
источник
2019 June 23

Н

Нияз in JavaScript Developers
You are welcome
источник

LF

Libron FCB in JavaScript Developers
Всем привет, подскажите, на сколько чревато использование 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);
}


Основная цель: Дождаться загрузки всех данных перед рендером. (цепочка асинхронных действий)
источник

NO

Nikita Omen in JavaScript Developers
Запускай загрузку данных в конструкторе, а в рендере добавь проверку. Если данных нет - ничего не показывать. componentDidMount немного для других целей
источник

NO

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

LF

Libron FCB in JavaScript Developers
Nikita Omen
Запускай загрузку данных в конструкторе, а в рендере добавь проверку. Если данных нет - ничего не показывать. componentDidMount немного для других целей
имеете ввиду конструктор переписать в async/await ?

у меня 3 последовательных запросов в АПИ, один ждет другого. Думал может переписать в async/await или обернуть в один промис
источник

NO

Nikita Omen in JavaScript Developers
Нет, в конструкторе можно вызвать async метод, но не await его
источник

NO

Nikita Omen in JavaScript Developers
А в рендере уже проверять, есть ли все данные
источник

LF

Libron FCB in JavaScript Developers
Nikita Omen
Нет, в конструкторе можно вызвать async метод, но не await его
Да, у меня сейчас так и сделано. Столкнулся с другой проблемой, функции запускаются не последовательно. Я неправильно выразился изначально, изменил примерный код выше
источник

NO

Nikita Omen in JavaScript Developers
А функции fetchData асинхронные?
источник

LF

Libron FCB in JavaScript Developers
Nikita Omen
А функции fetchData асинхронные?
Да.
Засунул все это дело в ComponentDidUpdate() —> как только все пришло - происходит запуск последней асинхронной функции fetchData2, ну и соответсвенно флаг чтобы больше не срабатывал didUpdate. Понимаю что костыль но работает. Посоветуйте более правильное решение.

Есть еше такой вариант:  написать еще 1 action где внутри 2 других action отрабатывают и меняют данные в redux. Не знаю насколько правильно это так делать.
источник

ММ

Марсель Мелисов in JavaScript Developers
Всем привет. Есть кто на vue пишет тут? Есть несколько вопросов. По vuex у
источник

in JavaScript Developers
Вопрос сразу задавай) сам не пишу , но могу порекомендовать чат @vuejs_ru
источник

NO

Nikita Omen in JavaScript Developers
Libron FCB
Да.
Засунул все это дело в ComponentDidUpdate() —> как только все пришло - происходит запуск последней асинхронной функции fetchData2, ну и соответсвенно флаг чтобы больше не срабатывал didUpdate. Понимаю что костыль но работает. Посоветуйте более правильное решение.

Есть еше такой вариант:  написать еще 1 action где внутри 2 других action отрабатывают и меняют данные в redux. Не знаю насколько правильно это так делать.
Тогда странно, почему функции не вызываются по порядку.
Как вариант, если используешь ридакс, то можно в getSnapshotBeforeUpdate проверять, какие данные уже есть, и вызывать функции получения данных с сервера в зависимости от текущего и прошлого стейта. Но лучше понять, почему await не работает
источник

LF

Libron FCB in JavaScript Developers
Nikita Omen
Тогда странно, почему функции не вызываются по порядку.
Как вариант, если используешь ридакс, то можно в getSnapshotBeforeUpdate проверять, какие данные уже есть, и вызывать функции получения данных с сервера в зависимости от текущего и прошлого стейта. Но лучше понять, почему await не работает
👍👍 окей, спасибо за помощь
источник

Н

Нияз in JavaScript Developers
Nikita Omen
Запускай загрузку данных в конструкторе, а в рендере добавь проверку. Если данных нет - ничего не показывать. componentDidMount немного для других целей
Whaaat? В доках прям пишут, что запросы в конструкторе не делать
источник

Н

Нияз in JavaScript Developers
Для этого есть componentDidMount
источник

NO

Nikita Omen in JavaScript Developers
Нияз
Whaaat? В доках прям пишут, что запросы в конструкторе не делать
А где? Не замечал такого
источник