React Router - загрузка динамических c ссылок в зависимости от состояния - PullRequest
0 голосов
/ 27 марта 2020

Я довольно новичок, чтобы реагировать и реагировать на Маршрутизатора. Так что, пожалуйста, держись со мной :-). У меня проблемы с рендерингом динамического c меню ReactRouter.

У меня есть компонент, <MyApp />. В componentDidMount() методе <MyApp /> я вызываю API. API возвращает массив статей. Затем я устанавливаю состояние <MyApp /> с этими новыми статьями.

.....
this.setState({
  isLoaded: true,
  articles: result
});

Теперь я загружаю новый компонент, <ArticlePage articles={this.state.articles} />

Небольшая касательная - этот новый <ArticlePage /> сделан с компонентом функции, а не компонентом класса. Причина в том, что у меня были проблемы с использованием ReactRouter внутри компонентов класса.

function ArticlePage(props){}... теперь существует. Props содержит мой массив статей.

Внутри ArticlePage(), я хочу создать ссылкуactRouter для каждой из статей в массиве, которые я передаю как реквизиты. Вот где у меня проблемы.

В моей голове мне нужно l oop над каждым из элементов props.articles массива и создать элемент ссылкиactRouter ..

<ul>
{props.articles.map(item => 
(
  <li>
    <Link to={`${url}/${item.article_id}`}>{item.title}</Link>
  </li>
))}
</ul>

Проблема в том, что мои ссылки не отображаются на странице. Отладка предполагает, что когда рендеринг страницы и запуск .map l oop выше, массив пуст. Используя инструменты разработчика Chrome, я вижу, что props.article для этого компонента действительно содержит все статьи. Тем не менее, я, конечно, смотрю на этот объект медленнее, чем при отрисовке страницы, поэтому он успел завершить.

Что это, что я делаю неправильно? Возможно, мне следует загружать и передавать состояние статей по-другому?

Спасибо за вашу помощь.

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