// pages/posts/posts.js
var WxParse = require('../../wxParse/wxParse.js');
const app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
posts: '',//文章
title: '',
detailsId: '',
postsTag: '',//标签名称
imgUrl: '',//分享图片,
isGoIndex: false//返回首页按钮
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var that = this;
// 判断数据来源
if (options.isshare == 1) {
console.log('我是从分享进来的', options.isshare)
// 重新请求数据
wx.request({
url: app.globalData.dataUrl.testUrl || app.globalData.dataUrl.officialUrl,
success(res) {
console.log('详情页:请求成功', res.data.posts)
that.setData({
posts: res.data.posts,
isGoIndex: true
})
},
fail(res) {
console.log('详情页:请求失败')
}
})
} else {
console.log('我是从列表进来的', that.data.isGoIndex, options.isshare)
that.setData({
posts: app.globalData.posts,
isGoIndex: false
})
}
// 加载数据
app.promiseData().then(function () {
// 数据筛选
setTimeout(function () {// 解决异步获取步骤问题
console.log('log页的posts数据:' + that.data.posts)
that.data.posts.map(function (item, idx) {
if (item.date == options.id) {
WxParse.wxParse('article', 'html', item.content, that, 5);
that.setData({
title: item.title,
detailsId: options.id,
postsTag: item.tags[0].name//存储当前文章标签
})
console.log('log页最终筛选出来的数据:' + that.data.title)
}
})
}, 50)
})
}
})
以上是我的代码,根据options.isshare来判断是从分享链接(1)进来的还是列表页(0)进来的,从列表页面进入页面浏览显示没有问题,但是从分享链接进入页面的时候app.promiseData()会优先于wx.request执行,倒是页面内容无法渲染展示,请问我应该如何解决此问题呢?
微信小程序开发问题解答
微信小程序开发者回答:
就这玩意你封装成一个函数,然后函数的形参是一个回调函数,在获取到数据后执行,你那个app.promiseData()放到回调函数里写就行了
if (options.isshare == 1) {
console.log('我是从分享进来的', options.isshare)
// 重新请求数据
wx.request({
url: app.globalData.dataUrl.testUrl || app.globalData.dataUrl.officialUrl,
success(res) {
console.log('详情页:请求成功', res.data.posts)
that.setData({
posts: res.data.posts,
isGoIndex: true
})
}
})
} else {
console.log('我是从列表进来的', that.data.isGoIndex, options.isshare)
that.setData({
posts: app.globalData.posts,
isGoIndex: false
})
}
微信小程序开发者回答:
app.promiseData().then在你onload里面判断完来源在调用不行吗
本文网址:http://www.91bianli.com/weixinxiaochengxu/51792.html