我有一个带有链接的"主页"组件,当你点击一个链接时,产品组件将与产品一起加载.我还有一个始终可见的组件,显示"最近访问的产品"的链接.
这些链接在产品页面上不起作用.当我单击链接时,url会更新,并进行渲染,但产品组件不会随新产品更新.
看这个例子:
以下是索引中的路由.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>;
ProductHistory中的链接如下所示:
<Link to={`/products/${product.product_id}`}> {product.name}</Link>
所以他们匹配Route path="/products/:product"
.
当我在产品页面上try 跟踪ProductHistory链接时,URL会更新并呈现,但组件数据不会更改.在Codesandbox示例中,您可以取消对Product components render函数中的alert 的注释,以查看它在跟随链接时的渲染情况,但什么也没有发生.
我不知道问题是什么...你能解释一下问题并找到解决办法吗?那太好了!