小编rvt*_*one的帖子

如何使用 useEffect 中的事件侦听器测试自定义挂钩?

我正在使用 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)

testing listener reactjs jestjs react-native

5
推荐指数
0
解决办法
985
查看次数

标签 统计

jestjs ×1

listener ×1

react-native ×1

reactjs ×1

testing ×1