video.js页面,想把video[]传递给video_ch页面。
在video.wxml页面写的navigator跳转函数和data-video
//video.js页面
handleTap(e) {
//json转化字符串
var videoData = JSON.stringify(this.data.video);
var videoitem = encodeURIComponent(videoData);
wx.navigateTo({
url:'../../pages/video_ch/video_ch?video='+e.currentTarget.dataset.videoitem })
//video_ch.js页面
data: {
// videoList:[]
videoList:[]
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var dataStr = options.video
dataStr = decodeURIComponent(dataStr);
var dataJson = JSON.parse(dataStr);
this.setData({
videoList:dataJson,
})
为啥video_ch页面数据没有
认真的吗?
你这样用点语法取值,定义的变量videoitem有何意义?
var it = JSON.stringfiy(that.data.dataList);
//然后将字符串编码为URI组件,因为json字符串里会有特殊字符会干扰页面对uri的解析
var item = encodeURIComponent(it);
我参考的是这种。去掉了,video_ch页面也是跟原来一样空的。
那怎么实现,点击img跳转到出相应的video啊?
//video.js页面
handleTap(e) {
//json转化字符串
console.log(this.data.video, '跳转页面前video页面video的值')
var videoData = JSON.stringify(this.data.video);
var videoitem = encodeURIComponent(videoData);
wx.navigateTo({
url:'../../pages/video_ch/video_ch?video='+ videoitem })
//video_ch.js页面
data: {
videoList:[]
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var dataStr = options.video,
dataStr = decodeURIComponent(dataStr);
var dataJson = JSON.parse(dataStr);
console.log(dataJson, 'JSON反序列化后的值')
this.setData({
videoList:dataJson
}, () => {
console.log(this.data.videoList, '赋值videoList后的值')
})
}
at JSON.parse (<anonymous>)
报红了
数组用url query传递不太好吧,为啥不用globalData
app.globalData.video = this.data.cateItem.children.son.video
存storge暂存一下吧
存到app.globalData不是更方便