微信小程序开发中,有不少场景会遇到这种问题,今天遇到了,记录一下
需求:点击搜索栏时,跳转新页面(子页面),点击“确认筛选”时,返回当前页(父页面),将搜索的内容带到父页面
如图:
子页面:js
Page({
data:{
condition:'',
},
changeName(e){ // 搜索栏的点击事件,this.setData赋值
console.log(e,'name');
this.setData({
condition:e.detail
})
},
// “确认筛选”按钮的点击事件,这边只传了搜索框的值
confirmSearch(){
if (!this.data.condition) {
wx.showToast({
title: '请输入关键字',
icon: 'error',
})
return false
}
else{
let pages = getCurrentPages();//子页面(getCurrentPages是获取的当前页面(子页面)的JS里面所有pages的信息)
let prevPage = pages[pages.length - 2];//父页面(prevPage 是获取的父页面的JS里面所有pages的信息)
prevPage.setData({
condition:this.data.condition 将子页面要传的值赋值给父页面
})
wx.navigateBack({
delta: 1,
})
}
},
})
父页面接收:js
Page({
data:{
condition:''
}
onShow: function () {
this.getList()
},
getList(){
return new Promise((resolve, reject)=>{
this._ajax({
data: {
_method: 'order.verify.detail',
condition:this.data.condition // 这是重点!!!获取数据的时候,将要筛选的条件带过来,其他的是获取后端数据处理的,不用管
}
}).then((res) => {
if (res.code === '000000') {
const list = res.data
var data =[]
for(var i in list){
let item = list[i];
item.map(v=>{
let mobile = v.mobile;
v.mobile=mobile.substring(0,3)+'****'+mobile.substring(6,mobile.length-1)
})
var obj = {name:i,value:list[i]}
data.push(obj)
}
this.setData({
recordList:data,
})
}
})
})
},
})