Реактивный компонент не перезагружается на history.push - PullRequest
2 голосов
/ 10 января 2020

У меня есть приложение с маршрутами, определенными следующим образом:

<Route exact path="/:category/:product" component={ProductComponent} />

На странице категории, "/:category У меня есть две кнопки для каждого продукта: " Быстрый просмотр " и " Полный просмотр", при нажатии которого я хочу перейти на страницу продукта, но также установить состояние для просмотра, например setView('quick') или setView('full').

Я попытался решить эту проблему, используя кнопки onclick для следующего кода:

   () => {
        setView('quick')
        history.push(`/${category.slug}/${product.slug}`)
    }

здесь вызываются оба, history api изменяет URL, но компонент не загружается для этого URL. Я не могу использовать компонент реагирующего маршрутизатора <Link>, потому что мне нужно установить представление перед переходом на страницу продукта.

Как я могу использовать историю от реагирующего маршрутизатора для изменения страницы, как это делает <Link>?

1 Ответ

2 голосов
/ 10 января 2020

Попробуйте это
Удалите компонент и используйте рендер

<Route
  exact
  path="/:category/:product"
  render={({ match }) => <ProductComponent key={match.params.product || 'empty'} />}
/>
...