從 API 向我的應用程式獲取資料時出現此錯誤。我檢查了我的控制臺,實際上我正確地獲得了令牌,但出現了這個錯誤。我已經用過 AsyncStorage.clear(); 在應用程式開始時
useEffect(() => {
AsyncStorage.clear();
});
但錯誤仍然出現。即使存在該錯誤,我仍然可以獲取資料,所以我有點忽略了它,但現在由于意外令牌,我無法更新我的資料。
首頁 index.js(這是試圖獲取資料的檔案)
import AsyncStorage from '@react-native-async-storage/async-storage';
import React, {useEffect, useState} from 'react';
import {Image, StyleSheet, Text, View} from 'react-native';
import {Button, Gap, Header} from '../../components';
import {colors, getData} from '../../utils';
export default function Home({navigation}) {
const [profile, setProfile] = useState({
name: '',
email: '',
phone_number: '',
});
const [data, setData] = useState([]);
const [token, setToken] = useState('');
useEffect(() => {
getData('token').then(res => {
const res_token = res;
console.log('getting token data response at home: ', res_token);
setToken(res_token);
});
fetch('https://emaillead.aturtoko.id/api/v1/profile', {
method: 'GET',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Authorization: `Bearer${token}`,
},
})
.then(response => response.json())
.then(json => {
console.log('token auth: ' token);
setProfile({
name: json.user.name,
email: json.user.email,
phone_number: json.user.phone_number,
});
//setData(json);
console.log(json);
})
.catch(error => console.error(error));
}, [token]);
return (
<View style={styles.page}>
<Header title="User Data" />
<Text style={styles.text}>Nama: {profile.name}</Text>
<Gap height={20} />
<Text style={styles.text}>Email: {profile.email}</Text>
<Gap height={20} />
<Text style={styles.text}>Nomor Telepon: {profile.phone_number}</Text>
<Gap height={40} />
<Button
title="Lihat Campaign"
onPress={() => navigation.navigate('Campaign')}
/>
</View>
);
}
這是控制臺 錯誤訊息

uj5u.com熱心網友回復:
我認為問題可能出在 getData 和 fetch 之間。您應該使用 await 或 chain with .then 方法來安排請求的順序,否則您在獲取資料時將沒有 res_token。
useEffect(() => {
getData('token').then(res => {
const res_token = res;
console.log('getting token data response at home: ', res_token);
return res_token
}).then((res_token) => {
// do the fetch when res_token is already got
})
}, []);
uj5u.com熱心網友回復:
我無法弄清楚這個問題,因為我需要更多背景關系,例如,您呼叫了代碼中不存在的 getData 函式。
無論如何,我認為您應該注意以下幾點:
您得到的錯誤不一定與您使用的“令牌”狀態變數有關。當 JavaScript 嘗試決議格式錯誤的 JSON 字串時,通常會拋出此錯誤。
例如,您可以使用以下語法在瀏覽器控制臺中重現相同的錯誤。
JSON.parse("User") // VM193:1 Uncaught SyntaxError: Unexpected token U in JSON at position 0.
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/352594.html
標籤:javascript json 反应原生 语法错误
