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 запускается, он обновляет представление. Надеюсь, это поможет

Другие вопросы по тегам