函数定义
/**
* 页面栈,修改数据
* @param
* preIdx 页面位置 1~n 1:当前页面 2:上一页 ,依次递增
* funcName 原页面函数名
* preData 数据项 JSON
*/
const upDateByCurPage = (preIdx,funcName,preData) => {
//获取页面栈
var pages = getCurrentPages();
var _page = pages[pages.length - 1]; //当前页
if (pages.length > 1) { //说明有上一页存在
//上一个页面实例对象
var prePage = pages[pages.length - preIdx];
console.log("页面栈修改页面", {
"route": prePage.route,
"preData": preData
});
//关键在这里,调用上一个页面的函数
prePage[funcName](preData);
}
}
原页面函数
/**
* @param
* navIndex 需要改变数据的索引,页面跳转时在当前页面赋值
*
* navIndex = e.currentTarget.dataset.index;
*/
upDateByCurPage: function(preData) {
let that = this;
let dataKey = "list[" + navIndex + "]";
let dataItem = that.data.list[navIndex];
dataItem.station_name = preData.station_name;
that.setData({
[dataKey]: dataItem
})
}
需要动态调用原页面函数,传入函数名即可
函数调用
const utils = require('../../../../utils/util.js');
utils.upDateByCurPage(2, "upDateByCurPage", {
"station_name": "页面栈测试"
});
跳转前
跳转后