在开发项目中,避免不了不同页面之间传递数据等,那么就需要进行不同页面之间的一个数据传递
直接传递一个对象时:
页面A
gotoDetail(e){
const music = e.currentTarget.dataset.music;
// 在小程序中,不同页面之间如何进行参数传递?
// 既然不能传递对象,所以需要将对象进行类型转换
// encodeURIComponent : 将内容转换为编码
wx.navigateTo({
url:
"/pages/songDetail/songDetail?music=" +
encodeURIComponent(JSON.stringify(music)),
});
},
页面B
Page({
data:{},
onLoad(options) {
console.log( JSON.parse( decodeURIComponent( options.music ) ) );
},
});
传递ID
但是通常情况下,我们并不会将对象进行一个传递,而是直接传递一个ID,并在页面B中重新请求
wxml
进行传递参数 id="传递的值"来进行传递
data-* 自定义属性的设置 但是在后端使用的时候*的内容会全部变成小写
<text
wx:for={{recommendList}}
wx:key="id"
class="iconfont icon-gengduo"
data-music="{{item}}"
data-musicId="{{item.id}}"
bindtap="gotoDetail"
></text>
页面A
gotoDetail(e){
const musicId = e.currentTarget.dataset.musicid;
wx.navigateTo({
url:"/pages/songDetail/songDetail?musicId='' + musicId,
});
},
页面B
Page({
data: {},
onLoad(options){
console.log(options.musicId);
},
});