我正在使用 React Native 和 Jest 来创建我的测试。我在测试监听来自expo-linking 的url 事件的事件监听器时遇到问题。该事件侦听器位于 useEffect 挂钩内。
下面是我的自定义挂钩的代码,其中包含 useEffect 和事件侦听器:
useEffect(() => {
isMounted.current = true;
Linking.addEventListener('url', async () => {
try {
if (!navigation.isFocused() || !isMounted.current) return;
setIsLoading(true);
const response = await api.get('sessions/auth/success');
if (!response.data) return;
console.log('aqui');
const { notRegisteredUser, token } = response.data;
api.defaults.headers.authorization = `Bearer ${token}`;
if (notRegisteredUser && token) {
setIsLoading(false);
navigation.navigate('BirthDateScreen');
dispatch(
updateUser({
...notRegisteredUser,
}),
);
}
} catch (err) {
Alert.alert('Error', `${translate('loginRegisterError')}: `, err);
}
});
return () => …Run Code Online (Sandbox Code Playgroud)