微信小程序 setData accepts an Object rather than some undefined 解决办法

问题

1
2
3
setData accepts an Object rather than some undefined

setData接受一个对象而不是一些定义

让我猜猜, 你一定是在加载index页面(首页)时报错的吧? 而且日了狗的开发工具不报微信调试报

解决

这个问题很扯淡, 其实就是你在app.js中一次性request了一些数据, 暂存到app.globalData中

再通过以下代码, 渲染在需要用到这种数据的地方
页面.js

1
2
3
4
5
6
7
8
9
10
var app = getApp()

Page({
data:{
},

onLoad: function (options) {
this.setData(app.globalData.xxx)
}
})

我估计你是这么出错的, 并且这种方法应用在其他页面没问题, 就出现在了首页.

估计是app.js里request异步访问的原因, 直到网页加载完成了 都还没得到数据. 造成了this.setData(null)的现象

真-解决办法 (我不bb了)

`
this.setData(app.globalData.xxx)
放到
onReady事件里, 就解决了. Ready比Load后执行. 可能会出现打开瞬间没有数据, 然后填充的现象