Реагирует на 2 компонента одного и того же класса в переключателе, переходя от 1 к другому, больше не рендерится - PullRequest
0 голосов
/ 01 июня 2018

Итак, это мой коммутатор:

   <Switch>
      <Redirect exact from={`${match.url}`} to={`${match.url}/faq`} />
      <Route exact path={`${match.url}/faq`} component={FAQPage} />
      <Route path={`${match.url}/troubleshooting`} component={FAQPage} />
      <Redirect from={`${match.url}/*`} to={`${match.url}/faq`} />
    </Switch>

Моя страница часто задаваемых вопросов - это компонент со списком, который показывает данные из REDUX в зависимости от типа списка:

  let listType = 'troubleshooting';
if (this.props.match.url.indexOf('faq') !== -1) {
  listType = 'faq';
}

Где у меня есть ListContainer, который содержит список реагирующего семантического интерфейса пользователя, который будет заполнять данные.

Моя проблема в том, что, если я загружу страницу, я вернусь к данным и покажу их, но когдаЯ перехожу на другую страницу.Он не будет повторно отображать listContainer, что означает, что он не будет извлекать данные, поэтому он будет отображаться пустым.Если я принудительно перезагрузлю, тогда моя вторая страница загрузится, но когда я перейду на первую, я получу пустые данные.

ЕСЛИ я копирую, вставляю код моего компонента и создаю другой компонент для вставкивторой маршрут коммутатора.Что-то вроде:

<Switch>
  <Redirect exact from={`${match.url}`} to={`${match.url}/faq`} />
  <Route exact path={`${match.url}/faq`} component={FAQPage} />
  <Route path={`${match.url}/troubleshooting`} component={TroubleShootingPage} />
  <Redirect from={`${match.url}/*`} to={`${match.url}/faq`} />
</Switch>

Это будет работать, если предположить, что компонент другой, поэтому он не используется повторно, поэтому он должен отображаться полностью.

Мой вопрос: возможно ли это?заставить перезагрузить мою FAQPage из SWITCH?Чтобы он всегда показывал правильные данные?(Я мог бы просто оставить код с двумя точно такими же файлами .js, но я не хочу иметь такую ​​избыточность в коде.

1 Ответ

0 голосов
/ 01 июня 2018

Я бы хотел помочь.Ваш сценарий немного сложен для понимания, рассмотрите возможность добавления минимального примера на codesandbox.io

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