小程序
小游戏
企业微信
微信支付
扫描小程序码分享
data: {
API: {
getDoctor: new Map(),
getHosipital: new Map(),
getDepart: new Map(),
getIndications: new Map()
}
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
我也写过类似的,data里放了一个带有静态方法、实例方法的对象,然后某些操作之后就丢失了,其实官网有写:页面加载时,data 将会以JSON字符串的形式由逻辑层传至渲染层,因此data中的数据必须是可以转成JSON的类型:字符串,数字,布尔值,对象,数组。 后来把这份数据拷贝一份放到data外了,这样data里的数据只参与渲染。
data
JSON
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
我不知道我有没有理解对!我是这样实现的
在page外定义了
const __API = {
page中这样写:
Page({
API: {}
},
onLoad: function () {
this.setData({
API: __API
})
console.log(this.data.API);
// 打印出来没毛病,感谢~~~
不是这个意思,你现在虽然打印出来没毛病,但是在经过某些页面上的操作之后,data下的数据会dto化,就是变成普通的字面量对象。我猜测是框架进行了拷贝,丢失了原引用。 这种情况我的做法是除了this.setData({API:_API}),之外,还设置了一个this.API=_API; 后续的数据操作都在this.API上进行,data里只做简单的赋值,你可以理解为this.setData({API:this.API}),缺点就是赋值的时候必须两个对象都要同步。
很秀的写法~
没有在秀啊😭~正儿八经的,头一回写小程序
简单粗暴点,默认值直接{}或者[]
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
我也写过类似的,data里放了一个带有静态方法、实例方法的对象,然后某些操作之后就丢失了,其实官网有写:页面加载时,
data
将会以JSON
字符串的形式由逻辑层传至渲染层,因此data
中的数据必须是可以转成JSON
的类型:字符串,数字,布尔值,对象,数组。后来把这份数据拷贝一份放到data外了,这样data里的数据只参与渲染。
我不知道我有没有理解对!我是这样实现的
在page外定义了
const __API = {
getDoctor: new Map(),
getHosipital: new Map(),
getDepart: new Map(),
getIndications: new Map()
}
page中这样写:
Page({
data: {
API: {}
},
onLoad: function () {
this.setData({
API: __API
})
console.log(this.data.API);
}
})
// 打印出来没毛病,感谢~~~
不是这个意思,你现在虽然打印出来没毛病,但是在经过某些页面上的操作之后,data下的数据会dto化,就是变成普通的字面量对象。我猜测是框架进行了拷贝,丢失了原引用。
这种情况我的做法是除了this.setData({API:_API}),之外,还设置了一个this.API=_API; 后续的数据操作都在this.API上进行,data里只做简单的赋值,你可以理解为this.setData({API:this.API}),缺点就是赋值的时候必须两个对象都要同步。
很秀的写法~
没有在秀啊😭~正儿八经的,头一回写小程序
简单粗暴点,默认值直接{}或者[]