decorator - 更改 @track 值时 LWC 不更新视图
问题描述
https://developer.salesforce.com/docs/component-library/tools/playground/GcVjmML4/2/edit 为什么不在视图上更新@track 值?以及如何强制更新值?
Parent.cmp
import { LightningElement } from 'lwc';
var OBG ={ data:
{name: "Valera",
lastName : "Pypkin",
lastNameTWO : "lastNameTWO1111",
tt: {
gg:{name:"aaaaa"}
}}
}
export default class App extends LightningElement {
OBG = OBG;
}
儿童.cmp
import { LightningElement, api, track } from 'lwc';
export default class Child extends LightningElement {
@api data;
@track _objCopy;
get item() {
return this.data.data;
}
handleClick(){
const Other = { name: "Valera",
lastName : "Pypkin",
lastNameTWO : "lastNameTWO1111",
tt: {
gg:{name:"gggg"}
}}
this.myobj = Other; //change track value;
}
get myobj() {
return this.item;
}
set myobj(value) {
this._objCopy = value;
}
}
为什么不更新视图中的@track 值?以及如何强制更新值?
解决方案
我相信你想要这样的东西:
import { LightningElement, api, track } from 'lwc';
export default class Child extends LightningElement {
@api
get data() {
return this._objCopy;
}
set data(value) {
this._objCopy = value;
}
@track _objCopy;
handleClick(){
const Other = { name: "Valera",
lastName : "Pypkin",
lastNameTWO : "lastNameTWO1111",
tt: {
gg:{name:"gggg"}
}}
this._objCopy = Other; //change track value;
}
}
在组件的视图上只需添加 {_objCopy} 即可将值绑定到视图。一旦handleClick 被触发,它将更新视图。希望能帮助到你
推荐阅读
- visual-studio - 当我尝试在 Visual Studio 中键入时,它会覆盖下一个字符
- python - 当继承类需要Python中的继承类时,如何从基类继承?
- javascript - 我想从某个时间点发送一封电子邮件
- windows - 将文件从子文件夹移动到父目录
- java - Spring Jpa 存储过程中的多个输出参数-异常“找不到类型的属性”
- javascript - Map 方法仅显示列表中的一项
- angular - Angular 9将表单重置为一个字段是数组的原始状态
- recaptcha - 隐形 reCAPTCHA v2 得到响应?
- android - Android Studio 失去与设备的连接,说 IGmsServiceBroker.getService 失败
- vba - 无法引用属性或方法/类型不匹配 Microsoft Access