在手机上也调试了,问题一样。是不是wx.redirectTo把全局变量清空了。 app.js App({ /** * 当小程序初始化完成时,会触发 onLaunch(全局只触发一次) */ onLaunch: function () { }, /** * 当小程序启动,或从后台进入前台显示,会触发 onShow */ onShow: function (options) { }, /** * 当小程序从前台进入后台,会触发 onHide */ onHide: function () { }, /** * 当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息 */ onError: function (msg) { }, appData:{ userInfo:null } }) index.js var app = getApp(); Page({ data:{ // text:"这是一个页面" }, onLoad:function(options){ // 页面初始化 options为页面跳转所带来的参数 }, onReady:function(){ // 页面渲染完成 }, onShow:function(){ // 页面显示 }, onHide:function(){ // 页面隐藏 }, onUnload:function(){ // 页面关闭 }, login:function(){ if(app.appData.userInfo == null){ wx.redirectTo({ url: '../Test/Test', }) } } }) logs.js var app = getApp(); Page({ data:{ username:null, password:null, }, onLoad:function(options){ }, onReady:function(){ }, onShow:function(){ // 页面显示 }, onHide:function(){ // 页面隐藏 }, onUnload:function(){ // 页面关闭 }, loginBtnClick:function (){ // 用户名和密码验证的过程 app.appData.userinfo = {'username':this.data.username,'password':this.data.password}; console.log(app.appData.userinfo.username); console.log(app.appData.userinfo.password); wx.redirectTo({url:"../Test/Test"}) }, usernameInput : function (event){ this.setData({username:event.detail.value}) }, passwordInput : function (event){ this.setData({password:event.detail.value}) } })
页面之间数据传递在app.js中定义一个全局变量赋值为空,然后在user.js中定义函数判断如果为空,wx.redirectTo 到logs页面,并在logs页面按钮中赋值全局变量,然后返回user页面,可是user的onload的函数中始终判断全局变量为空。
2019-01-18