一、背景
列表里面有很多元素,元素A编号 001 元素B 编号002,点击元素B 跳转到新页面,同时把002带到B中使用
二、解决办法
1、在该元素的点击事件div中传入002,这里指item.mobileNo
<view data-mobileNo="{{item.mobileNo}}" class="payment-records-arrow" onTap="modelDetail" ></view>
注意写法data-mobileNo="{{item.mobileNo}},传的参数就是mobileNo
2、在点击事件的js中使用该数据
modelDetail(e) {
var mobileNo=e.target.dataset.mobileNo
my.navigateTo({
url: '../../../pages/modeldetail/index'+'?mobileNo='+mobileNo,
});
}
3、你看你在页面跳转时候的url里面传了mobileNo,这样在新页面就可以接住这个mobileNo了
在新页面的js里面这样拿到mobileNo
onLoad(query) {
// 页面加载
console.info(`Page onLoad with query: ${JSON.stringify(query)}`);
this.setData({pageMobileNo:query.mobileNo})
},
4、在新页面js中把mobileNo放到变量里面,上面代码里面写的
this.setData({pageMobileNo:query.mobileNo})
5、把变量挂到这个页面的组件后面,传递给组件
<view class="container">
<view class="content-list">
<!-- <detail-list info="{{mobileInfo}}" /> -->
<detail-list pageMobileNo="{{pageMobileNo}}"/>
</view>
</view>
6、在组件的props里面定义一个变量接住组件传来的值,名字跟传过来的参数名字保持一致哈
props:{
pageMobileNo:''
},
7、然后在页面加载时候,把props的值复制给data,就可以利用data各种操作啦
data: {
pageMobileNo:'',
},
didMount() {
this.setData({pageMobileNo:this.props.pageMobileNo})
},
8、代码没办法粘贴全,有问题可以私信我