Начальное состояние с реквизитом делает мое состояние неопределенным - PullRequest
0 голосов
/ 18 февраля 2019

Я быстро создал эту песочницу , чтобы легче объяснить мою проблему.

Я хочу, чтобы при нажатии на мой clickableItem значение ввода от компонента simplePopOver принималосьзначение из состояния компонента clickableItem.

Для этого я инициализирую состояние с simplePopOver с помощью реквизита, но проблема в том, что состояние всегда равно значению init 'initialisation', тогда как реквизиты имеют хорошее значение (проверка console.log()).У тебя есть идея?Это асинхронная проблема?

Я не думаю, что мои объяснения ясны, но если вы проверите песочницу, она станет более понятной :)

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Вам необходимо реализовать getDerivedStateFromProps для обновления состояния на основе изменения реквизита в SimplePopover компонент

static getDerivedStateFromProps(props, state) {
    console.log(props);
    if (props.clickableElementText !== state.prevClickableElementText) {
      return {
        prevClickableElementText: props.clickableElementText,
        textInInput: props.clickableElementText,
      }
    }
    return {
      prevClickableElementText: props.clickableElementText
    }
  }

Рабочая демонстрация

0 голосов
/ 18 февраля 2019

состояние clickableElementText

не объявлено

Использовать this.state.textInInput

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