- 当前 Bug 的表现(可附上截图)
computed的值计算正确,但是视图层没有正确更新。
流程:
页面需要计算一个“是否有库存”的值
该值通过官方库 computed 计算得来
首次进行该页面,计算值、视图值正确(均为true)
从第二次开始,进入该页面,计算值正确、视图值不正确(计算值为true,视图值为false)
// container/goods-detail-bar/index.js
Component({
behaviors: [require('../../behaviores/computed/index.js')],
/**
* 组件的属性列表
*/
properties: {
// 商品id
pid: {
type: String,
value: '',
observer: 'fetchDetail'
}
},
/**
* 组件的初始数据
*/
data: {
// 商品详情
detail: {
}
},
computed: {
// 是否还有库存
hasStock( ) {
const d = this.data.detail;
if ( !d._id ) {
console.log('111');
return false;
} else {
const { stock } = d;
console.log('222', stock );
return stock === undefined || stock > 0;
}
}
},
/**
* 组件的方法列表
*/
methods: {
/** 拉取商品详情 */
fetchDetail( id ) {
const that = this;
setTimeout(( ) => {
that.setData({
detail: {
_id: 123,
visiable: true,
stock: undefined
}
});
}, 2000 );
},
}
})
- 预期表现
两值同步。
微信小程序开发问题解答
微信小程序开发者回答:
麻烦给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题
微信小程序开发者回答:
补充:
多次尝试后,发现这样子又能更新正确...
加了一个_id
这个究竟是bug还是什么原因呢
/**
* 组件的初始数据
*/
data: {
// 商品详情
detail: {
_id: "xxxxxx"
}
},
本文网址:http://www.91bianli.com/weixinxiaochengxu/41796.html