【发布时间】:2020-04-11 05:54:15
【问题描述】:
我是 React Native 的新手,刚刚升级到 react-navigation-5
我正在努力用新的钩子 useFocusEffect 替换旧的 listener 函数
这是旧函数:
const loadTrips = useCallback(async() => {
setError(null);
setIsRefreshing(true);
try {
dispatch(tripActions.fetchTrip());
} catch (error) {
console.log(error);
setError(error.message);
}
setIsRefreshing(false);
},[dispatch, setIsRefreshing, setError]);
*********************************************************
// This is the old function
useEffect(() => {
const willFocus = props.navigation.addListener(
'willFocus',
loadTrips
);
return () => {willFocus.remove();}
},[loadTrips]);
*********************************************************
useEffect(() => {
setIsLoading(true);
loadTrips().then(
setIsLoading(false),
);
}, [dispatch, loadTrips])
编辑 1
我试图将loadtrips 函数传递给useFocusEffect,但它显示错误
useFocusEffect(loadTrips)
请帮忙
【问题讨论】:
标签: javascript reactjs react-native react-hooks