我檢查了我的控制臺,發現每次更改代碼時都會獲取資料,我正在使用一個只有有限訪問權限的 API,所以這有點像一個流浪漢。
使用 useEffect 獲取資料,我包含了一個空的依賴陣列,因此它只在注冊組件時獲取一次資料。
React.useEffect(()=>{
fetch('
https://api.themoviedb.org/3/discover/tv?api_key=172f725b29bb24b6e294a988fc5&language=en- US&sort_by=popularity.desc&include_adult=false&include_video=false&page=1&with_genres=16&without_genres=107,10759,99,80,35,10764,18,10751&with_watch_monetization_types=flatrate
')
.then(res => res.json())
.then(data => console.log(data)),
),[]}
- 我將 Home.jsx (這是獲取資料的組件)匯入 App.jsx
App.jsx
<Router>
<Navbar />
<Routes>
{/* right here is Home component being rendered*/}
<Route path="/" element={<Home />} />
<Route
path="/artisteMusicOverview"
element={<ArtisteMusicOverview />}
/>
</Routes>
</SearchContext.Provider>
</Router>
請問我該如何解決這個奇怪的并發癥?
uj5u.com熱心網友回復:
模擬你的 API 呼叫
我正在使用只有有限訪問權限的 API
然后在開發時不要從該 API 中獲取。替換fetch為回傳模擬資料的模擬函式(您可以從 API 的一個真實回應中復制)。
完成開發后,您可以用真正的 fetch 替換它。
您可以使用一些全域開關/環境變數在模擬和真實提取之間切換,只需確保您的產品代碼不會呼叫模擬資料。
為什么會觸發 useEffect?
我們不知道您的整個開發堆疊,所以這只是一個猜測,但您可能有一些熱多載/快速重繪 機制,當您保存代碼更改時會重新安裝您的組件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/531950.html
上一篇:type'(dynamic)=>Category'不是'transform'Flutter型別'(String,dynamic)=>Map
