3 回答
TA贡献1836条经验 获得超5个赞
首先,您需要在 Heros 映射组件上创建 onClick 事件,然后将其传递给 history,在 app.js 中推送和创建路由,然后将传递的路径作为 match.params。.....
<div>{heroes.map(hero =>(
<Heroes onClick={() => onHeroClick(hero)}
image = {hero.thumbnail.path+'.jpg'}
title ={hero.name}
/>
))}
</div>
const onHeroClick = (hero) => {
// hero must have a unique id/name here which u can pass to the link
history.push('/heros/' + hero.name)}
在 app.js 上
<Route path={'/hero/:heroname} />
在显示英雄详细信息的新组件上:
const Component2 = ({match}) => {
match.params.heroname = a unique id/name u sent withhistory.push('/heros/' + hero.name)
TA贡献1839条经验 获得超15个赞
"Id like to know how can I manipulate the api ..."
我认为您需要为此查看 Marvel API 文档。
根据我的经验,API 通常带有特定的模式。举例来说,我们有一个图书馆书籍的 API:
点击
/books
URL 意味着您将获得图书馆中的所有书籍。结果肯定是array of objects
. 就像你和英雄们所拥有的一样。点击
/books/43
URL 意味着您将获得某本书的详细信息。在这里,它的书 ID 等于 43。结果应该是一个对象,其中包含该书的所有信息。这就是您正在寻找的。
我没有使用也没有阅读过 Marvel API,但我相信它应该在文档中。
要在您的 React App 中实现它,您绝对可以使用Sushilzzz中的示例。
TA贡献1895条经验 获得超7个赞
好吧,如果你想显示另一个关于英雄细节的页面,你可以通过路由 ex 传递英雄的名字:http://marvelheros/TonyStark 你可以通过编程重定向。 https://dev.to/projectescape/programmatic-navigation-in-react-3p1l
另一种方法是您可以使用弹出窗口来显示英雄详细信息
添加回答
举报