componentDidUpdate не запускается правильно - PullRequest
0 голосов
/ 13 октября 2018

Добрый день,

Впервые с React я так сильно застрял, не могу понять, почему componentDidUpdate не дает мне правильных результатов.То, что я пытаюсь сделать, это внести некоторые изменения в дочерние компоненты в зависимости от количества входящих тегов через реквизиты.И когда я пытаюсь записать в журнал все изменения, произошедшие в компоненте, вы можете ясно увидеть, что количество тегов изменилось, но оно не регистрирует цикл обновления моего компонента.

Вот мой метод componentDidUpdate:

  componentDidUpdate(previousProps) {
    if (this.props.message.id == 11553) {
      console.log(`Current tag array length: ${this.props.message.tags.length}, previous: ${previousProps.message.tags.length}`);
    }
  }

И вот результат журнала:

MessageTags.js:190 Current tag array length: 4, previous: 4
MessageTags.js:190 Current tag array length: 4, previous: 4
MessageTags.js:190 Current tag array length: 4, previous: 4
MessageTags.js:190 Current tag array length: 4, previous: 4
MessageTags.js:190 Current tag array length: 4, previous: 4
socket.js:41 SOCKET DATA RECEIVED -> createTag:  {…}
MessageTags.js:190 Current tag array length: 5, previous: 5
MessageTags.js:190 Current tag array length: 5, previous: 5

После ответа сокета новый тег добавляется в состояние избыточности.Я проверил, переопределяется ли компонент каким-либо образом, чтобы он не обновлялся, а непосредственно отображался, и не вызывал метод componentDidMount () снова.Поэтому я считаю, что он не удаляется и не перерисовывается.

В чем проблема в моем случае здесь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...