LWC не обновляет вид при изменении значения @track
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;
}
Child.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 при просмотре? А как заставить обновить значение?
1 ответ
Я считаю, что вы хотите иметь что-то вроде этого:
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 запускается, он обновляет представление. Надеюсь, это поможет