Réagir ne recharge pas les données relatives aux composants sur la route param changement ou modification de la requête

J'ai une "maison" composant avec des liens, et lorsque vous cliquez sur un lien du produit composant est chargé avec le produit. J'ai aussi un autre élément qui est toujours visible, montrant les liens de la "récemment visité produits".

Ces liens ne fonctionnent pas sur une page produit. L'url des mises à jour lorsque je clique sur le lien, et un rendu se produit, mais le produit de la composante n'est pas mise à jour avec le nouveau produit.

Voir cet exemple:
Codesandbox exemple

Voici les routes index.js:

<BrowserRouter>
  <div>
    <Route
      exact
      path="/"
      render={props => <Home products={this.state.products} />}
    />

    <Route path="/products/:product" render={props => <Product {...props} />} />

    <Route path="/" render={() => <ProductHistory />} />

    <Link to="/">to Home</Link>
  </div>
</BrowserRouter>;

Les liens dans ProductHistory ressembler à ceci:

<Link to={`/products/${product.product_id}`}> {product.name}</Link>

Afin qu'elles correspondent à la Route path="/products/:product".

Quand je suis sur une page produit et essayer de suivre un ProductHistory lien, l'URL des mises à jour et un rendu se produit, mais le composant de données ne change pas. Dans le Codesandbox exemple, vous pouvez décommenter l'alerte dans les composants du Produit fonction rendu de voir qu'il s'affiche lorsque vous suivez le lien, mais rien ne se passe.

Je ne sais pas quel est le problème...Pouvez-vous expliquer le problème et trouver une solution? Ce serait formidable!

InformationsquelleAutor Galivan | 2018-01-07