我的情况类似于以下情况:
<Link to="products" state={{ category: "all" }}>All Products</Link>
<Link to="products" state={{ category: "lawnmowers" }}>Lawnmowers</Link>
<Link to="products" state={{ category: "saddles" }}>Saddles</Link>这个想法是,根据用户点击的链接,我会过滤掉产品,只显示该类别。我对这个解决方案的易用性相当满意,理想情况下我不想改变它。
当我在不同的路线上时,这很好用,例如,我在/about,点击割草机链接,我会得到一个满是割草机的页面。但是,如果我在/products路线上,单击任何其他也指向/products本身的链接根本不会做任何事情。网站不会刷新,状态不会改变,Gatsby或Reach似乎以某种方式阻止了这一点。
有没有办法绕过或禁用这种行为,并以某种方式强制Gatsby重新加载/重新呈现页面?
发布于 2020-11-15 10:24:06
当道具或状态改变时,React会重新渲染页面。
如果我在/products路线上,那么单击任何其他也指向/products本身的链接根本不会做任何事情
这意味着道具和状态都不会改变,因为你们在同一条路线上?!那么你就得不到重播者了。如果我弄错了,请重新措辞,并更具体地回答你的问题。
一种可能的解决方案是:通过单击链接,还可以触发一个更改状态的函数。这意味着,您将不得不远离简洁的,而是实现大量的状态管理代码。但是,如果您通过更改状态进行过滤,则是没有办法的。
使用React hooks useState更改状态,使用useEffect应用状态更改。使用到达路由器的navigate触发状态更改。
https://stackoverflow.com/questions/64832800
复制相似问题