От новичка до гуру: Курсы программирования на CyberDuff

Передача реквизита через реагирующий маршрутизатор недоступна в componentDidMount?

Я передал реквизиты упомянутому компоненту через реагирующий маршрутизатор следующим образом:

<BrowserRouter>
      <Switch>
          <Route path="/product-page" exact render={(props) => ( <ShopPages {...props} response={this.state.response}/>)}/>
      </Switch>
    </BrowserRouter>

Я хотел бы получить доступ к этому реквизиту в componentDidMount() примерно так:

componentDidMount() {
 console.log(this.props.response)
}

Опора this.props.response доступна в компоненте, я могу добавить его в консоль в render (). Я не уверен, почему в приведенном выше сценарии консоль показывает пустой массив. Я попытался проверить, доступны ли данные, а затем показать данные так console.log( 'show', this.props.response && this.props.response) или добавив async вот так:

async componentDidMount() {
const data = await this.props.response
}

Но это тоже ничего не дает. Любая помощь?


  • удалите () вокруг вашего <shopPage ... > компонента, который вы его визуализируете, посмотрите, изменится ли он ???? 26.08.2018

Ответы:


1

Я просто собираюсь предположить, что this.state.response не является обещанием, а на самом деле является данными, поскольку вы сказали, что это пустой массив, поэтому async / await ничего не сделает.

ComponentDidMount () запускается только один раз, когда компонент монтируется, и НЕ является местом для выполнения действий на основе обновлений свойств, которые могут произойти после монтирования. Поэтому я бы предложил передать обещание, и если это не вариант, сделайте что-нибудь вроде

componentDidUpdate(prevProps, prevState) {
    if (!prevProps.response.length && this.props.response.length) {
      //Your code
    }
  }
26.08.2018
Новые материалы

Путь AWS  — «Изучение машинного обучения — 10 начинающих ИИ и машинного обучения на AWS».
Универсальный ресурсный центр для изучения искусственного интеллекта и машинного обучения. НОЛЬ или ГЕРОЙ, начните свое путешествие здесь. Получите решения и пройдите обучение у экспертов AWS...

5 простых концепций Python, ставших сложными
#заранее извините 1) Переменные x = 4 y = 5 Переменная в Python — это символическое представление объекта. После присвоения некоторого объекта переменной Python мы приобретаем..

«Освоение вероятности: изучение совместной, предельной, условной вероятности и теоремы Байеса —…
Виды вероятности: Совместная вероятность Предельная вероятность Условная вероятность Диаграмма Венна в вероятностях: В “Set Theory” мы создаем диаграмму Венна...

Основы Spring: Bean-компоненты, контейнер и внедрение зависимостей
Как лего может помочь нашему пониманию Когда мы начинаем использовать Spring, нам бросают много терминов, и может быть трудно понять, что они все означают. Итак, мы разберем основы и будем..

Отслеживание состояния с течением времени с дифференцированием снимков
Время от времени что-то происходит и революционизирует часть моего рабочего процесса разработки. Что-то более забавное вместо типичного утомительного и утомительного процесса разработки. В..

Я предполагаю, что вы имеете в виду методы обработки категориальных данных.
Я предполагаю, что вы имеете в виду методы обработки категориальных данных. Пожалуйста, проверьте мой пост Инструментарий специалиста по данным для кодирования категориальных переменных в..

Игра в прятки с данными
Игра в прятки с данными Я хотел бы, чтобы вы сделали мне одолжение и ответили на следующие вопросы. Гуглить можно в любое время, здесь никто не забивается. Сколько регионов в Гане? А как..