wepy 取出来的storage是上一次的

njthzxwz  于 2022-10-20  发布在  其他
关注(0)|答案(3)|浏览(146)

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",
3z6pesqy

3z6pesqy1#

这个应该是代码问题,建议你加个console.log 看一下调用顺序定位一下

0pizxfdo

0pizxfdo2#

requestObj.requestHeaderJSON是变量,读取的时候值就已经固定了,多次读取也是一样的。
你可以把requestHeaderJSON换成一个函数,调用的时候每次都重新取值 @UniqueAlex

i7uq4tfw

i7uq4tfw3#

requestObj.requestHeaderJSON是变量,读取的时候值就已经固定了,多次读取也是一样的。
你可以把requestHeaderJSON换成一个函数,调用的时候每次都重新取值 @UniqueAlex

谢谢,解决了

相关问题