我將令牌保存到 asyncstorage 中以進行身份??驗證,但問題是每當我獲得值時,我將其登錄到控制臺并且它可以作業但它不會將令牌發送到標頭,我嘗試了幾種方法但所有邏輯似乎都失敗了. 請幫助您的經驗,還是我使用運行異步存盤?
export const editProfile = (userData) => {
const storageGet = async () => {
try {
const result = await AsyncStorage.getItem("token");
console.log("data", result);
console.warn("data", result);
return result;
} catch(error) {
console.log(error);
}
}
return (dispatch, getState) => {
const userId = getState().auth._id
axios.put(`${url}/users/${userId}`, userData,
(async () => { // block of code to set auth token to header
try{
const x = await storageGet()
console.log("nowToken", x) // it returns the token into the console
setHeaders(x) // but didn't set the token in the header
}catch(err) {
console.log(err.response)
}
})()
// setHeaders(token)
)
.then(response => {
dispatch({
type: "EDIT_PROFILE_SUCCESS",
username: response.data.username,
email: response.data.email,
name: response.data.name,
phoneNumber: response.data.phoneNumber,
biography: response.data.biography,
gender: response.data.gender,
address: response.data.address,
message: response.data.message,
success: response.data.success
})
})
.catch((error) => {
console.log(error.response)
})
}
}
uj5u.com熱心網友回復:
從 axios doc,api 是 axios.put(url[, data[, config]])
您的第三個引數(代表配置)是一個不回傳任何內容的函式。將其替換為回傳所需配置物件的函式。eg ()=>{'authorization': await AsyncStorage.getItem("token")}
這應該夠了吧。
這可能更具可讀性。
const token = await AsyncStorage.getItem("token")
const config = {headers: {'authorization':`bearer ${token}`}}
axios.put(`${url}/users/${userId}`, userData, config)
編輯片段缺少“標題”鍵。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/404434.html
標籤:
上一篇:在本機反應中初始化空物件陣列
