• Accueil / Salesforce / Correction de l’erreur…
, Correction de l&rsquo;erreur «Impossible d&rsquo;attribuer à la propriété en lecture seule» et imprimer l&rsquo;objet proxy de LWC &#8211; Blog de Jitendra Zaa<span class="wtr-time-wrap after-title"><span class="wtr-time-number">2</span> minutes de lecture</span>

Correction de l’erreur «Impossible d’attribuer à la propriété en lecture seule» et imprimer l’objet proxy de LWC – Blog de Jitendra Zaa2 minutes de lecture


Extrait de code rapide pour lire le contenu de l’objet Proxy dans le composant Web Lightning et résoudre l’erreur Impossible d’attribuer à la propriété en lecture seule

Comme son article d’extrait de code, il sera très court mais fréquemment utilisé.

Salesforce décorateur @track est réactif, ce qui signifie que si la valeur dans JavaScript change, l’interface utilisateur HTML équivalente changera également. Vous n’avez pas besoin de marquer les types de données primitifs comme piste, car il est activé par défaut pour eux. Cependant, pour une structure / un objet complexe, nous devons marquer variable comme @track.

Chaque fois qu’un objet JavaScript marqué comme @Piste, Salesforce encapsule cet objet pour donner un objet proxy. Si vous essayez d’imprimer cela sur la console, vous ne pourrez pas voir sa valeur.

Cela étant dit, il n’y a pas de changement dans la façon dont vous y accédez, c’est exactement comme tout autre objet Javascript que nous utilisons. Donc, si vous voulez voir le contenu de l’objet proxy, appelez simplement la méthode ci-dessous et passez votre objet proxy.

//Get Javascript object equivalent to Proxy
    proxyToObj(obj){
        return JSON.parse(JSON.stringify(obj));
    }

Une autre façon est de garder une autre variable sans @Piste décorateur pour voir le contenu. Cependant, le problème serait – vous devez vous assurer de le garder synchronisé à chaque fois que le contenu de l’original @Piste les changements d’objet.

Correction d’une erreur – Impossible d’attribuer à la propriété en lecture seule

L’erreur ci-dessus se produit lorsque nous essayons de modifier la propriété publique sur LWC marquée comme @api

@api someVar
.... some code

somemethod(event){
    //error on below line - Cannot assign to read only property
     someVar.isSelected = true;
}

Le bloc de code ci-dessus générerait une erreur pendant que nous essayons. pour changer la propriété d’un objet déclaré par @api

@api someVar
.... some code

somemethod(event){
    //clone @api variable using method we just created
    let tmpObj = this.proxyToObj(someVar);
     tmpObj.isSelected = true;
    //now assign this tmp variable back to original
   someVar = tmpObj;
}

Pour corriger l’erreur ci-dessus, utilisez peut faire quelque chose comme



Source de l’article traduit automatiquement en Français

Besoin d'aide ?
Voulez-vous utiliser Pardot à sa capacité maximale et avoir
+ DE LEADS QUALIFIÉS

Notre analyse de votre Pardot offerte dès aujourd'hui
Merci, vous pouvez compléter notre questionnaire
Nous allons revenir vers vous rapidement !

Fermer