Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

componentDidMount вложенных компонентов вызывается когда ноды еще не в DOM #41

Closed
vitkarpov opened this issue Jun 28, 2016 · 25 comments
Assignees
Labels
Milestone

Comments

@vitkarpov
Copy link
Member

componentDidMount обычных реакт-компонент, которые вложены во вьюшку, вызывается в тот момент, когда ноды еще нет реально в DOM.

Это очень печально — нельзя смотреть на размеры, положение ноды и т.д.

@vitkarpov vitkarpov added the bug label Jun 28, 2016
@vitkarpov vitkarpov self-assigned this Jun 28, 2016
@vitkarpov
Copy link
Member Author

vitkarpov commented Jun 28, 2016

Написал несколько тестов. Выяснил, что это верно только для вложенных реактивных вьюшек, а так же вьюшек в боксах.

@vitkarpov
Copy link
Member Author

UPD

#42

Написал тесты на 4 кейса:

  • корневая реактивная вьюшка
  • вложенная реактивная вьюшка
  • вьюшка в ns-боксе
  • вьюшка в реакт-боксе

Все тесты проходят.

@vitkarpov
Copy link
Member Author

@km256 надо еще раз посмотреть в приложении.

@Rebulus Rebulus added this to the 1.0.7 milestone Jun 29, 2016
@Rebulus
Copy link
Collaborator

Rebulus commented Jul 5, 2016

@vitkarpov а тут что-то слышно?

@vitkarpov
Copy link
Member Author

Сперва попробуем переехать на ns@0.8.x — и будем смотреть еще раз в приложении.

@Rebulus Rebulus removed this from the 1.0.7 milestone Jul 10, 2016
@vitkarpov
Copy link
Member Author

Проверил в приложении на noscript@0.8.6 — проблема не воспроизводится

Rebulus added a commit that referenced this issue Aug 15, 2016
[#41] Тесты на componentDidMount вложенных компонент
@vitkarpov
Copy link
Member Author

Воспроизвел с 0.8.6 при повторном апдейте. Постараюсь воспроизвести в тестах.

@vitkarpov vitkarpov reopened this Aug 25, 2016
@Rebulus
Copy link
Collaborator

Rebulus commented Aug 25, 2016

вот жеж 😞

@Rebulus
Copy link
Collaborator

Rebulus commented Aug 31, 2016

@vitkarpov есть какие-то новости?

@Rebulus
Copy link
Collaborator

Rebulus commented Sep 6, 2016

@vitkarpov пыщ-пыщ!

@vitkarpov
Copy link
Member Author

Не-а, пока нет :) Еще не добрались до задачки.

@Rebulus
Copy link
Collaborator

Rebulus commented Sep 6, 2016

спасибо 😄

@mishk0
Copy link
Member

mishk0 commented Sep 27, 2016

Правильно понимаю что это происходит из-за того, что сначала рендерятся вложенные вьюхи, а потом все это вставляется в дом?

@Rebulus
Copy link
Collaborator

Rebulus commented Sep 27, 2016

Да, похоже, что так. Правда стоит смотреть не только на ns.Box в плане вставки, но и в ns.View . Но по своей сути штука близкая, что при первой отрисовке componentDidMount будет вызван, когда элементы ещё не будут в DOM.

@Rebulus
Copy link
Collaborator

Rebulus commented Sep 27, 2016

@mishk0 хотя, есть тесты, которое говорят об обратном 😞
b1e3b23
может быть ты их можешь дополнить случаем, который на твой взгляд вызывает ошибку?

@mishk0
Copy link
Member

mishk0 commented Sep 28, 2016

@Rebulus а ns.View.prototype._updateHTML переопределяется же. И такой кейс у меня возникает только с боксами.

@Rebulus
Copy link
Collaborator

Rebulus commented Sep 28, 2016

@mishk0 возможно ты можешь дописать тест на этот кейс?

@mishk0
Copy link
Member

mishk0 commented Sep 28, 2016

Да, надо будет попробовать воспроизвести на тестах.

@vitkarpov
Copy link
Member Author

Понял, какой кейс не написал в тестах — когда создаются разные экземпляры вьюшки в боксе

@vitkarpov
Copy link
Member Author

Кажется, вот в этом проблема

@Rebulus
Copy link
Collaborator

Rebulus commented Sep 28, 2016

а тест сможешь добавить?

@vitkarpov
Copy link
Member Author

Да, давай добавлю. @mishk0 если вдруг хотел такой же добавить точно, то не надо, ок? :)

vitkarpov added a commit that referenced this issue Sep 28, 2016
@vitkarpov
Copy link
Member Author

#58

@Rebulus Rebulus added this to the 1.0.8 milestone Sep 29, 2016
@Rebulus Rebulus modified the milestones: 1.1.0, 1.0.8 Dec 29, 2016
@vitkarpov
Copy link
Member Author

Для кейса реакт-вью непосредственно внутри яте-бокса — #62

vitkarpov added a commit that referenced this issue Dec 29, 2016
vitkarpov added a commit that referenced this issue Dec 29, 2016
@vitkarpov
Copy link
Member Author

В итоге:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants