亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

操縱 api 以顯示來自單擊元素的數據

操縱 api 以顯示來自單擊元素的數據

qq_花開花謝_0 2022-11-27 16:41:13
因此,我正在學習 React 并正在構建一個使用 Marvel api 來顯示英雄信息的應用程序。現在我有一個頁面顯示所有英雄的圖像和名字。我想知道如何操作 API,以便在單擊英雄圖片時將我帶到包含 API 中包含的更多詳細信息(描述、系列列表等)的頁面。我可能必須為此使用狀態,但我真的不知道如何處理這種情況。這是我得到的代碼:import React, {useEffect, useState} from 'react';import "../App.css";import Heroes from './Heroes';const FetchApi = () =>{ const apikey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'; const public_key = 'xxxxxxxxxxxxxxxxxxxxxxxxx' const md = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' const apiURL=`https://gateway.marvel.com:443/v1/public/charactersts=1&apikey=${public_key}&hash=${md}` const [heroes, setHeroes] = useState([])   useEffect (()=>{      getData();  },[])      const getData = async()=>{      const data = await fetch(apiURL)      const response = await data.json()      setHeroes(response.data.results)      console.log(response.data.results)  }  return(      <div className='App'>            <input type='text' className='search-bar'/>         <button className='search-button'>Search</button>             <div>          {heroes.map(hero =>(           <Heroes           image = {hero.thumbnail.path+'.jpg'}           title ={hero.name}          />       ))}          </div>               </div>  )}export default FetchApi;
查看完整描述

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)


查看完整回答
反對 回復 2022-11-27
?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

"Id like to know how can I manipulate the api ..."

我認為您需要為此查看 Marvel API 文檔。

根據我的經驗,API 通常帶有特定的模式。舉例來說,我們有一個圖書館書籍的 API:

  1. 點擊/booksURL 意味著您將獲得圖書館中的所有書籍。結果肯定是array of objects. 就像你和英雄們所擁有的一樣。

  2. 點擊/books/43URL 意味著您將獲得某本書的詳細信息。在這里,它的書 ID 等于 43。結果應該是一個對象,其中包含該書的所有信息。這就是您正在尋找的。

我沒有使用也沒有閱讀過 Marvel API,但我相信它應該在文檔中。

要在您的 React App 中實現它,您絕對可以使用Sushilzzz中的示例。


查看完整回答
反對 回復 2022-11-27
?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

好吧,如果你想顯示另一個關于英雄細節的頁面,你可以通過路由 ex 傳遞英雄的名字:http://marvelheros/TonyStark 你可以通過編程重定向。 https://dev.to/projectescape/programmatic-navigation-in-react-3p1l

另一種方法是您可以使用彈出窗口來顯示英雄詳細信息



查看完整回答
反對 回復 2022-11-27
  • 3 回答
  • 0 關注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號