Почему метод в конструкторе функций компонента React оценивается после инициализации компонентов? - PullRequest
0 голосов
/ 26 мая 2019

Извините, если название трудно понять, потому что это определенно странная проблема.

Я думаю, что этот скриншот лучше всего объясняет, что происходит, и он не имеет смысла для меня во всех смыслах программирования.Независимо от того, интерпретируется ли PL или скомпилирован, я ожидаю, что две строки в одной и той же функции будут вычисляться в последовательном порядке.

Однако не в этом случае:

enter image description here

На этом параллельном снимке экрана четко видно, что строка, которую я ожидал напечатать после первой строки (последовательно), фактически напечатана / оценена первой.

Это проблема для меня, потому что единственная причина, по которой я вызываю метод index.getObject в конструкторе компонента React, заключается в использовании ответа в самом объекте.Так что теперь все компоненты React просто используют destName = null.

Может кто-нибудь объяснить это поведение?(бонусные баллы, если есть способ убедиться, что первая строка оценивается первой)

дополнительная картинка для объяснения поведения:

enter image description here

1 Ответ

0 голосов
/ 26 мая 2019

Как намекал @RandyCasburn, похоже, это проблема с вашим index.getObject методом, являющимся асинхронным вызовом JavaScript.Это означает, что при вызове index.getObject JavaScript непрерывно выполняет код, ожидающий результата вызова index.getObject.

Вот канонический ответ на асинхронные вопросы JavaScript по переполнению стека: Почему моя переменная не изменилась после того, как я изменил ее внутри функции?- Ссылка асинхронного кода

...