LW C не обновляет вид при изменении значения @track - PullRequest
0 голосов
/ 27 января 2020

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 Ответ

0 голосов
/ 04 февраля 2020

Полагаю, вы хотите получить что-то вроде этого:

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

...