我重構了我的代碼以使用useEffect鉤子而不是使用class,但是我在刷新結果時遇到了內存泄漏。我確實使用了useEffect,但我仍然收到一條錯誤消息,不確定我在代碼中哪里犯了錯誤。我收到以下錯誤:警告:來自 useState() 和 useReducer() Hooks 的狀態更新不支持第二個回調參數。要在渲染后執行副作用,請使用 useEffect() 在組件主體中聲明它。 import React, { useEffect, useState} from 'react'; import { FlatList, View, TouchableHighlight } from 'react-native'; import { USANews } from '../components/fetchNews'; import Article from '../components/Article'; const homeScreen = ({ handleRefresh, navigation, }) => { const [state, setState] = useState({articles: [], refreshing: true}); useEffect (() => { fetchNews(); }, ) const fetchNews = () => { USANews() .then(articles => { setState({ articles, refreshing: false }); }) .catch(() => setState({ refreshing: false })); }; handleRefresh = () => { setState({ refreshing: true }, () => fetchNews()); }; return ( <View style={{backgroundColor: '#fffafa'}}> <FlatList data={state.articles} keyExtractor={item => item.url} refreshing={state.refreshing} onRefresh={handleRefresh} renderItem ={({item}) => { return ( <TouchableHighlight onPress={() => navigation.navigate('Detail', {title: item.title, description: item.description, urlToImage: item.urlToImage})} > <Article article={item} /> </TouchableHighlight> ); }} /> </View> ); } export default homeScreen;
確保 useState() 鉤子已經由 useEffect hook 更新?
慕森卡
2022-08-18 10:32:34