【发布时间】:2020-08-17 00:21:47
【问题描述】:
我有一个非常简单的用例,基本上如果屏幕聚焦我希望这个函数运行,如果不是就不要运行。
const isFocused = useIsFocused();
const onViewRef = useRef(({ viewableItems }) => {
if (!isFocused) return;
//code to run
});
特别是这个屏幕的堆栈:
const MyStack = () => {
return (
<Stack.Navigator headerMode="none">
<Stack.Screen
component={MyStackComponent}
name="My"
/>
</Stack.Navigator>
);
};
这是在 tabNavigator 中使用的堆栈
<Tab.Screen
component={MyStack}
name="My"
/>
<Tab.Screen
component={Other Stack}
name="Other"
/>
所以基本上每当我转到我的应用程序上的任何其他选项卡时,使用 useIsFocused 挂钩的文件应该返回 false 对吗?因为现在无论如何它都会返回 true,而且我不能一直运行该函数。有什么指点吗?
【问题讨论】:
标签: react-native react-hooks react-native-navigation