React useEffect返回值错误求助:异步请求引发警告
问题排查与修复
你遇到的警告是因为useEffect的回调函数返回了一个Promise,而React规定useEffect的回调要么不返回任何值,要么返回一个用于清理操作的函数。你的代码里return getMyNfts(),而getMyNfts是async函数,调用后会返回Promise,这不符合React的要求。
修正后的代码
直接调用getMyNfts()即可,不需要return它。另外建议添加try/catch捕获请求异常,避免请求失败时抛出未处理错误:
const [testArtData, setTestArtData] = useState([]); useEffect(() => { const getMyNfts = async () => { try { const openseaData = await axios.get(`https://testnets-api.opensea.io/assets?asset_contract_address=0x4Bef569089846759595C1ed598a3bD6D249FD7c4&order_direction=asc`); console.log(openseaData.data.assets); setTestArtData(openseaData.data.assets); } catch (error) { console.error('获取NFT数据失败:', error); } } getMyNfts(); // 直接调用,不要return }, [])
内容的提问来源于stack exchange,提问作者Dennis Heyns
相关产品推荐
相关产品推荐

