Description
==========================
我在redux的actions中import了一个request header对象,这个request header对象中的Authorization是从storage中获取的token,现在出现的问题是每次从storage中获取的token都是上一次的,不是最近一次的。无论是同步获取设置storage还是异步设置storage都有这个问题。
=======================
actions.js // 文件名
import { requestObj } from '../config'
export const loginActions = {
LOGIN: createAction(LOGIN, (userinfo) =>{
console.log(requestData)
let login = requestObj.login;
login.header = requestObj.requestHeaderJSON
let loginRequestObj = {
url: login.url,
method: login.methods,
data: userinfo,
header: login.header,
}
// 调用common请求方法
return new Promise((resolve, reject) => {
requestData(loginRequestObj, function (res) {
wx.hideLoading()
if(res.data.data.token) {
// 这里设置storage
wx.setStorage({ key:'login_token', data:res.data.data.token})
}
resolve(res.data)
}, function (res) {
wx.hideLoading()
reject(res)
})
})
}),
GETUSERINFO: createAction(GETUSERINFO, () =>{
let getuserinfo = requestObj.getuserinfo;
// 此处的requestHeaderJSON中的
getuserinfo.header = requestObj.requestHeaderJSON
let getuserinfoRequestObj = {
url: getuserinfo.url,
method: getuserinfo.methods,
header: getuserinfo.header,
}
return new Promise((resolve, reject) => {
requestData(getuserinfoRequestObj, function (res) {
wx.hideLoading()
resolve(res.data)
}, function (res) {
wx.hideLoading()
reject(res)
})
})
})
=================
config.js // 文件名
requestHeaderJSON: {
'content-type': 'application/json',
'FrontType': 'mobile-ui',
// 这里获取storage,每次都获取的是上一次的,不是最新一次set的
'Authorization': wx.getStorage({key:'login_token'})
}
Environment
- Platform: 开发者工具
- Platform version: 1.02.1902010
- Wechat version: [微信版本号]
- wepy-cli version: [wepy-cli -v]
- wepy version: ^1.7.2
- other version: "redux": "^3.7.2",
3条答案
按热度按时间3z6pesqy1#
这个应该是代码问题,建议你加个console.log 看一下调用顺序定位一下
0pizxfdo2#
requestObj.requestHeaderJSON是变量,读取的时候值就已经固定了,多次读取也是一样的。
你可以把requestHeaderJSON换成一个函数,调用的时候每次都重新取值 @UniqueAlex
i7uq4tfw3#
requestObj.requestHeaderJSON是变量,读取的时候值就已经固定了,多次读取也是一样的。
你可以把requestHeaderJSON换成一个函数,调用的时候每次都重新取值 @UniqueAlex
谢谢,解决了