Javascript 打开抽屉激活时自动调用API
我正在使用useEffect使用此API中的数据。只有在第一次打开组件时才起作用的内容 我想要的是,每次API中的数据发生变化时。更改组件信息 使用useIsFocused或useFocusEffect时,会出现错误:找不到导航对象。是导航器中屏幕内的组件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
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,这是最简单的方法,应该可以工作。