Javascript 打开抽屉激活时自动调用API

Javascript 打开抽屉激活时自动调用API,javascript,reactjs,react-native,react-navigation,navigation-drawer,Javascript,Reactjs,React Native,React Navigation,Navigation Drawer,我正在使用useEffect使用此API中的数据。只有在第一次打开组件时才起作用的内容 我想要的是,每次API中的数据发生变化时。更改组件信息 使用useIsFocused或useFocusEffect时,会出现错误:找不到导航对象。是导航器中屏幕内的组件 const [infoUser, setInfoUser] = useState([]); const getNameUser = async () => { try { const accessToken

我正在使用useEffect使用此API中的数据。只有在第一次打开组件时才起作用的内容

我想要的是,每次API中的数据发生变化时。更改组件信息

使用useIsFocused或useFocusEffect时,会出现错误:找不到导航对象。是导航器中屏幕内的组件

 const [infoUser, setInfoUser] = useState([]);

  const getNameUser = async () => {
    try {
      const accessToken = await AsyncStorage.getItem('@access_token');
      /* console.log('Token', accessToken); */

      axios
        .get(
          'https://exampleapi/api/cliente',
          {
            headers: { Authorization: `Bearer ${accessToken}` },
          },
        )
        .then(function (response) {
          // handle success
          console.log('DADOS USER:', response.data.data.nomeCompleto);
          const userData = response.data.data;

          setInfoUser([userData]);
        })
        .catch(function (error) {
          // handle error
          console.log(error);
        });
    } catch (e) {
      // error reading value
      console.log('Erro de token', e);
    }
  };

useEffect(() => {
    getNameUser();
  }, []);

通过如下方式传递空数组来使用useEffect钩子:

useEffect(() => {
    getNameUser();
  }, []);
给它一个空数组就像componentDidMount一样,它只运行一次

不给它第二个参数充当组件didmount和 componentDidUpdate,因为它首先在装载时运行,然后在每次重新渲染时运行 例如:

useEffect(() => {
    getNameUser();
  });

你能在使用焦点钩子的地方用代码发布整个组件吗?如果您想在每次屏幕聚焦时调用API,这是最简单的方法,应该可以工作。