这几天在写微信小程序的时候发现控制台经常会报一个错。
Setting data field "cur" to undefined is invalid.
有关 cur 字段的代码如下。
handlePopup(e) {
const { item } = e.currentTarget.dataset;
this.setData(
{
cur: item,
},
() => {
this.setData({ visible: true });
}
);
}
从字面上来看意思是 cur 被设置为了 undefined,即字段 cur 没有获取到值,而这是无效的。
既然 cur 不能是 undefined,那么只要判断一下 item 的类型即可,即使用三元运算符进行判断,之后我们手动给他赋一个初始值。
修改之后的代码如下。
handlePopup(e) {
const { item } = e.currentTarget.dataset;
this.setData(
{
cur: item ? item : "",
},
() => {
this.setData({ visible: true });
}
);
}