本地缓存bug
第一次进入小程序的时候,执行
wx.setStorageSync('key', 'value')
然后打开一个新页面,执行
Page({ data: { userData: wx.getStorageSync( 'key' ), }, |
获取出来的值为空的
8 回复
//index.js //获取应用实例 const app = getApp() Page({ data: { motto: 'Hello World' , userInfo: {}, hasUserInfo: false , canIUse: wx.canIUse( 'button.open-type.getUserInfo' ) }, //事件处理函数 bindViewTap: function () { wx.navigateTo({ url: '../logs/logs' }) }, onLoad: function () { if (app.globalData.userInfo) { this .setData({ userInfo: app.globalData.userInfo, hasUserInfo: true }) } else if ( this .data.canIUse){ // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回 // 所以此处加入 callback 以防止这种情况 app.userInfoReadyCallback = res => { this .setData({ userInfo: res.userInfo, hasUserInfo: true }) } } else { // 在没有 open-type=getUserInfo 版本的兼容处理 wx.getUserInfo({ success: res => { app.globalData.userInfo = res.userInfo this .setData({ userInfo: res.userInfo, hasUserInfo: true }) } }) } }, getUserInfo: function (e) { console.log(e); app.globalData.userInfo = e.detail.userInfo; wx.setStorageSync( 'key' , 'e.detail.userInfo' ); this .setData({ userInfo: e.detail.userInfo, hasUserInfo: true }) } }) |
//logs.js const util = require( '../../utils/util.js' ) Page({ data: { logs: [], userInfo: wx.getStorageSync( 'key' ), },
console.log( this .data.userInfo); this .setData({ logs: (wx.getStorageSync( 'logs' ) || []).map(log => { return util.formatTime( new Date (log)) }) }) } }) |
其他文件都是官方例子