Size: a a a

JavaScript Noobs — сообщество новичков

2021 July 08

DM

Denis Maibach in JavaScript Noobs — сообщество новичков
Просто на данный момент для меня логичней было бы что в первый раз react вызывает constructor который инициализирует класс и сохраняет инстанс а во второй раз он вызывает какой-то метод типа instance.updateProps(props) который обновляет в свою очередь только props а после этого react вызывает метод componentDidUpdate который разрабочик сам настраивает
источник

S

Snake in JavaScript Noobs — сообщество новичков
В этом я очень сильно сомневаюсь. Ну во первых твой пример абсолютно нереалистичен, так никто не станет делать. Во вторых - вряд ли в реакте существует подобный механизм. В таком случае у тебя так или иначе в итоге должна была вывестись кнопка с счетчиком 7, ибо примерно так и сработало бы дефолтное поведение. Единственное, что мне тут тоже непонятно - это почему последний лог является цифрой 5, а не 7. Может быть я и во всём ошибаюсь, но в данном случае это нормально, твой пример нереален.
источник

DM

Denis Maibach in JavaScript Noobs — сообщество новичков
но почему тогда во второй раз react вызывает метод componentDidUpdate? если нечего не обновлялось ?
источник

S

Snake in JavaScript Noobs — сообщество новичков
А с чего ты взял что он его вызывает?
источник

DM

Denis Maibach in JavaScript Noobs — сообщество новичков
источник

S

Snake in JavaScript Noobs — сообщество новичков
Да, действительно вызывает. Тогда получается так, что реакт обнаруживает приложение и компонент в этой DOM ноде и ещё раз вызывает метод render, но уже не вызывая конструктор
источник

DM

Denis Maibach in JavaScript Noobs — сообщество новичков
и всё таки обновляет props ?:)
источник

S

Snake in JavaScript Noobs — сообщество новичков
Очевидно что да. Я просто с классовыми компонентами особо не работал. Я думал что при обновлении пропсов он должен был заново выполнить конструктор. Примерно по аналогии с функциональными компонентами. Но видимо, если локальный стейт зависит от пропсов - то их сравнивают и вызывают setState в каком ни будь didUpdate. Или может в данном случае действительно что-то работает не так как должно.
источник

А

Александр in JavaScript Noobs — сообщество новичков
Реакт повторно вызовет конструктор классового компонента только в 1 случае, если он был размонтирован и заново замонтирован.
источник

S

Snake in JavaScript Noobs — сообщество новичков
Понятно. Я предполагал что в его случае, в случае когда ты пытаешься дважды в одну дом ноду зарендерить реакт приложение - он либо ничего не сделает, либо заменит приложение последним. Однако точно не ожидал что он поймет что там уже находится точно такое же содержимое и просто прокинет новый проп в компонент.
источник

Δ

ΔΞΛЬΤΑ in JavaScript Noobs — сообщество новичков
ВиртуалДОМ, да.
источник

Б

Бонжурик драсте... in JavaScript Noobs — сообщество новичков
как мне дождаться промиса, чтобы изменить residentInfo?
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
вот аж три раза пробежались, брр
источник

Б

Бонжурик драсте... in JavaScript Noobs — сообщество новичков
Про фильтр?
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
ага
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
дождаться можно await, если then, то прям там и меняйте
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
вы тут всё равно на новом синтаксисе сидите, юзайте await - и всё
источник

j

jabascripter in JavaScript Noobs — сообщество новичков
а переписать фильтр можете?
источник

j

jabascripter in JavaScript Noobs — сообщество новичков
это же пздц
источник

BB

Bogdan Bida in JavaScript Noobs — сообщество новичков
Этой всей фигней должен бэк заниматся
источник