【发布时间】:2021-02-21 07:00:20
【问题描述】:
我正在使用 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();
}, []);
【问题讨论】:
-
你能用你使用焦点钩子的代码发布整个组件吗?如果您想在每次屏幕获得焦点时调用 API,这是最直接的方法,并且应该可以工作。
标签: javascript reactjs react-native react-navigation navigation-drawer