我在React中构建了一个项目,通过一个自定义钩子从API中检索数据,一旦检索到数据,它就会显示卡片,点击卡片可以打开描述页面。
// App.js
<Routes>
<Route path="/" element={<Home />} /> // cards list
<Route path="/:eleId" element={<Details />} /> // description page
</Routes>
// Home.jsx with single card
<div className="container">
<Link to={`/${eleId}`}>
<Card />
</Link>
</div>
我的问题来了:在描述页面内,我有相关链接,单击时会打开同一页面,但会更改数据:
x一个一个一个一个x一个一个二个x
网址更改正确,但数据没有更新...但如果我刷新它更新。
我不明白为什么React不能重新呈现页面。谁能给我一些建议吗?
谢谢你:)
2条答案
按热度按时间hk8txs481#
如果
Details
组件链接到自身,即呈现它的路由,这意味着路由路径已经被匹配,并且呈现x1M1N1X。x1M2N1X可能需要"监听" x1M3N1X路由匹配参数的改变。使用useParams
React钩子访问eleId
参数,使用useEffect
钩子(将eleId
作为依赖项)在参数更新时运行任何必要的副作用。示例:
对于
useData
钩子,将url
声明移到useEffect
钩子中,并添加param
参数作为效果的依赖项。当参数更改时,将重新触发useEffect
并重新获取数据。q8l4jmvw2#
从useparams中获取id,并使提取数据的使用效果对此id敏感。