刷新数据放onshow里就可以了。如果非回退不刷新的话,可以在回退前set一个值到globalData或者缓存里,在会退后页面onshow里判断这个值再确定是否请求数据
小程序如何返回刷新A页面 点击navigateTo 跳转到B页面 B页面调用了一个列表组件(使用component编写的),点击组件中的每一项回跳转到C页面 C页面执行完成后,返回B页面,(使用navigateBack进行返回),返回后,点击B页面左上角的回退按钮 发现,得点击2次,才能返回到A页面。 我在C页面做了一些数据更改的操作,操作完成后,我希望回退到B页面,B页面能自己重新刷新一下,这样才能看到我刚才的更改。但是,B页面其实是个组件模版页面。我在onshow里面,没法重新调用数据请求,因为数据都是分装在组件模版页中的,我不知道该怎么办呢?谁能帮帮我。 B页面: wxml: <listTag key-word="{{keyword}}" search-type="{{searchType}}" user-account="{{userInfo.userAccount}}" res-key="{{resKey}}"></listTag> json: { "usingComponents": { "listTag": "/components/list/listTag" }, "navigationBarTitleText": "" } js: // pages/crm/myCreatedAll.js var app = getApp(); Page({ /** * 页面的初始数据 */ data: { searchType:'', resKey:'crmWorkRecord', userInfo: {}, wmStyle:'', count:0 }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { console.log("--11111-----"); //NO.1 获取已注册用户的微信信息 this._getUserInfo(); //NO.2 根据获取到的信息判断用户是否登录 let isRelogin = this._isReLogin(); if (isRelogin) { return; } let title=""; switch (options.searchType){ case "registerAll": title ="我登记的全部工作记录"; break; case "registerChecking": title ='我登记的批示中的工作记录'; break; case "registerChecked": title = '我登记的批示完成的工作记录'; break; case "checkAll": title = '我审核的全部工作记录'; break; case "checking": title = '待我审核的工作记录'; break; case 'checked': title = "我审核过的工作记录"; break; default: title="根据编号、主题、客户搜索" } wx.setNavigationBarTitle({ title: title }) this.setData({ searchType: options.searchType, keyword:options.keyword?options.keyword:"" }); }, _getUserInfo: function () {//获取登录权限 let that = this; if (app.globalData.userInfo) { this.setData({ userInfo: app.globalData.userInfo }) } else { app.getUserInfo(function (userInfo) { that.setData({//更新数据 userInfo: userInfo }); }); } }, _isReLogin: function () {//是否需要重新登录 var account = this.data.userInfo.userAccount; if (!account) { app.alertMsg("无法识别当前登录用户,请重新登录", function () { wx.redirectTo({ url: '/pages/login/index', }) }); return true; } return false; }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })
2018-08-02我们团队也碰到了同样的问题,用着用着突然授权没了, wx.getSetting返回的授权也为空,并且再次点击授权登录按钮,也无法吊起授权弹框,但是能拿到用户信息和code。 但是再次检测wx.getSetting授权还是为空
已授权,但是wx.getSetting返回异常1、用户点击授权按钮,弹窗点允许(图一图二),图四可以看到授权成功,按钮的e.detail.uaseInfo信息正常 2、调用后台接口前,通过wx.getSetting判断用户是否已授权(图三),图四可以看出, 返回值res.authSetting['scope.userInfo']异常 注:一般情况下,异常如上步骤所述。有一次异常为,1、2步骤正常,但是过了一两分钟之后,wx.getSetting又返回异常(在此期间,没有退出小程序,也没有修改设置,只在不同页面之间切换浏览) [图片] [图片] [图片] [图片]
2018-07-09[图片]官方的文字很清楚,现在还没废弃,不过现在必须考虑替代方案了。废弃流程应该也是按照wx.authorize,线上版本不影响,然后开发版开始实行
如何判断openSetting接口是否已废弃在开发工具里调用wx.canIUse('openSetting'),结果是true,表明openSetting接口是可用的。 而使用wx.openSetting,控制台显示此接口已废弃! 官方文档上没有写明wx.openSetting是从哪个版本开始废弃的,那如何判断这个接口是否可用呢?
2018-07-09小程序基础类库只包含了Number的属性,而parseInt方法直接用就好
wxs Number对象不存在?<wxs module='formatMoney'> function getInt(a) { return Number.parseInt(a) } module.exports={ getInt:getInt } </wxs> 错误提示: Number.parseInt is not a function TypeError: Number.parseInt is not a function
2018-06-21