最近在作小程序的时候遇到这么一个有趣的问题,就是从A页面跳转到B页面,若是B页面须要在接口加载以后更改title,
而且若是接口请求过慢,还灭有请求完毕时就点击返回按钮回到A页面,这时B页面的请求会继续执行,并在执行完毕后修改了A页面的title。javascript
我的猜测,小程序自己属于单页面应用,代码的运行权限没有处理好,就像上面这种状况,B页面的代码穿越到了A页面的环境里面,而且执行。java
/b
,而后在方法中再次获取当前路径,多是/b
,也多是/a
,/a
,则是上面提到问题状况,这个时候就不用取改变title了,如果/b
,则能够更改。// utils.js const getCurrentRouter = function () { let arr = getCurrentPages(), len = arr.length; return arr[len - 1].route; } export {getCurrentRouter}; // b.js import {getCurrentRouter}; import { getDataForB } from '../../../servies/services.js'; Page({ onLoad (options) { this.currentRouter = getCurrentRouter(); }, // 获取数据 getData () { getDataForB().then(() => { // 获取数据后判断router是否一致 if (this.currentRouter == getCurrentRouter()) { wx.setNavigationBarTitle({ title: '要修改的title' }) } }) } })
我的博客:午后南杂git