1、 使用 useFocusEffect
import {useFocusEffect} from '@react-navigation/native';
useFocusEffect(React.useCallback(() => {
console.log('激活/进入当前页面');
}, []));
2、使用 navigation.addListener
import { useNavigation } from '@react-navigation/native';
const navigation = useNavigation()
useEffect(() => {
const unsubscribe = navigation.addListener("focus", () => {
console.log("当前页面获取到焦点了。")
});
return () => {
unsubscribe();
};
}, [navigation]);
不同点:useFocusEffect是第一次进入这个页面以及后续进入都会执行的函数。
navigation.addListener 是第一次激活当前页面的时候,不会执行,后续每次返回到这个页面的时候,才会执行。