Uncaught TypeError: 'set' on proxy: trap returned falsish for property Name Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) 2019 Community Moderator Election ResultsInvalid mutation : [Object Object] is read-onlyHow to manipulate data coming from Apex in LWC?LockerService seems to be blocking adding new properties to JS objects in LWCHow to convey LWC's complex Reactive property back to markup?How the values changed in html are reflected in js of lwcHyperlink record name LWC datatableHow to set a public reactive property in the declared component during component constructionProperty “selectedContact” of [object:vm undefined > (51)] is set to a non-trackable objectHow to set default value for a select in lwc
Found this skink in my tomato plant bucket. Is he trapped? Or could he leave if he wanted?
How to resize main filesystem
How to achieve cat-like agility?
How to ask rejected full-time candidates to apply to teach individual courses?
.bashrc alias for a command with fixed second parameter
malloc in main() or malloc in another function: allocating memory for a struct and its members
How do I find my Spellcasting Ability for my D&D character?
Weaponising the Grasp-at-a-Distance spell
What is "Lambda" in Heston's original paper on stochastic volatility models?
NIntegrate on a solution of a matrix ODE
How do Java 8 default methods hеlp with lambdas?
As a dual citizen, my US passport will expire one day after traveling to the US. Will this work?
How to make triangles with rounded sides and corners? (squircle with 3 sides)
Russian equivalents of おしゃれは足元から (Every good outfit starts with the shoes)
Can two people see the same photon?
How to make an animal which can only breed for a certain number of generations?
Why not use the yoke to control yaw, as well as pitch and roll?
What was the last profitable war?
Where did Ptolemy compare the Earth to the distance of fixed stars?
Plotting a Maclaurin series
Why did Bronn offer to be Tyrion Lannister's champion in trial by combat?
"Destructive power" carried by a B-52?
Baking rewards as operations
Why is there so little support for joining EFTA in the British parliament?
Uncaught TypeError: 'set' on proxy: trap returned falsish for property Name
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)
2019 Community Moderator Election ResultsInvalid mutation : [Object Object] is read-onlyHow to manipulate data coming from Apex in LWC?LockerService seems to be blocking adding new properties to JS objects in LWCHow to convey LWC's complex Reactive property back to markup?How the values changed in html are reflected in js of lwcHyperlink record name LWC datatableHow to set a public reactive property in the declared component during component constructionProperty “selectedContact” of [object:vm undefined > (51)] is set to a non-trackable objectHow to set default value for a select in lwc
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
Am not doing anything fancy, just trying to update a field on Contact in JS of LWC but getting this exception.
Uncaught TypeError: 'set' on proxy: trap returned falsish for property 'Name'
throws at mydomain/auraFW/javascript/mhontaYdOya4Y_lBu7v9yg/aura_prod.js:2:27687
HTML Code:
<template>
<template if:true=wiredContact>
wiredContact.Name
<lightning-input value=wiredContact.Name onchange=updateName></lightning-input>
</template>
</template>
JS:
import LightningElement ,wire,track,api from 'lwc';
import myContact from "@salesforce/apex/ContactController.fetchContact";
export default class Myrefreshapextest extends LightningElement
@track wiredContact;
@wire (myContact)
fetchedContact(error, data)
if(data)
console.log(JSON.stringify(data));
this.wiredContact = data;
else if (error)
console.log(error);
updateName (event)
console.log(JSON.stringify(event.detail.value));
console.log(JSON.stringify(this.wiredContact));
this.wiredContact.Name = event.detail.value;
Apex:
public class ContactController
@AuraEnabled(cacheable=true)
public static Contact fetchContact()
return [SELECT Id,Name FROM COntact LIMIT 1];
On top of my head, am not doing anything wrong, anyone has idea what's wrong with my code?
When I print console.log(JSON.stringify(this.wiredContact));
I get old values so am pretty sure it exists.
I tried with @track and @api, but same response. Can anyone shed some light?
lightning-web-components
|
show 1 more comment
Am not doing anything fancy, just trying to update a field on Contact in JS of LWC but getting this exception.
Uncaught TypeError: 'set' on proxy: trap returned falsish for property 'Name'
throws at mydomain/auraFW/javascript/mhontaYdOya4Y_lBu7v9yg/aura_prod.js:2:27687
HTML Code:
<template>
<template if:true=wiredContact>
wiredContact.Name
<lightning-input value=wiredContact.Name onchange=updateName></lightning-input>
</template>
</template>
JS:
import LightningElement ,wire,track,api from 'lwc';
import myContact from "@salesforce/apex/ContactController.fetchContact";
export default class Myrefreshapextest extends LightningElement
@track wiredContact;
@wire (myContact)
fetchedContact(error, data)
if(data)
console.log(JSON.stringify(data));
this.wiredContact = data;
else if (error)
console.log(error);
updateName (event)
console.log(JSON.stringify(event.detail.value));
console.log(JSON.stringify(this.wiredContact));
this.wiredContact.Name = event.detail.value;
Apex:
public class ContactController
@AuraEnabled(cacheable=true)
public static Contact fetchContact()
return [SELECT Id,Name FROM COntact LIMIT 1];
On top of my head, am not doing anything wrong, anyone has idea what's wrong with my code?
When I print console.log(JSON.stringify(this.wiredContact));
I get old values so am pretty sure it exists.
I tried with @track and @api, but same response. Can anyone shed some light?
lightning-web-components
Do you get same issue when you use the individual field names viz.,FirstName
?
– Jayant Das
Apr 5 at 16:41
Same errorUncaught TypeError: 'set' on proxy: trap returned falsish for property 'FirstName' throws at
its same error doesnt matter if its normal contact or personAccountContact.
– Pranay Jaiswal
Apr 5 at 16:43
I got the error (not exactly the same) but was able to replicate. Seems like you cannot set a value directly to the property instead recreate the JSON and then assign. E.g.,this.wiredContact = ["Name:" + event.detail.value];
this worked. Still trying to figure out.
– Jayant Das
Apr 5 at 16:57
@JayantDas It's a design feature. One that I'm pretty sure isn't documented.
– sfdcfox
Apr 5 at 17:09
@sfdcfox I just saw the behavior you mentioned just by trying it out, and it worked, even though my format above is not JSON, but I was intending that.
– Jayant Das
Apr 5 at 17:15
|
show 1 more comment
Am not doing anything fancy, just trying to update a field on Contact in JS of LWC but getting this exception.
Uncaught TypeError: 'set' on proxy: trap returned falsish for property 'Name'
throws at mydomain/auraFW/javascript/mhontaYdOya4Y_lBu7v9yg/aura_prod.js:2:27687
HTML Code:
<template>
<template if:true=wiredContact>
wiredContact.Name
<lightning-input value=wiredContact.Name onchange=updateName></lightning-input>
</template>
</template>
JS:
import LightningElement ,wire,track,api from 'lwc';
import myContact from "@salesforce/apex/ContactController.fetchContact";
export default class Myrefreshapextest extends LightningElement
@track wiredContact;
@wire (myContact)
fetchedContact(error, data)
if(data)
console.log(JSON.stringify(data));
this.wiredContact = data;
else if (error)
console.log(error);
updateName (event)
console.log(JSON.stringify(event.detail.value));
console.log(JSON.stringify(this.wiredContact));
this.wiredContact.Name = event.detail.value;
Apex:
public class ContactController
@AuraEnabled(cacheable=true)
public static Contact fetchContact()
return [SELECT Id,Name FROM COntact LIMIT 1];
On top of my head, am not doing anything wrong, anyone has idea what's wrong with my code?
When I print console.log(JSON.stringify(this.wiredContact));
I get old values so am pretty sure it exists.
I tried with @track and @api, but same response. Can anyone shed some light?
lightning-web-components
Am not doing anything fancy, just trying to update a field on Contact in JS of LWC but getting this exception.
Uncaught TypeError: 'set' on proxy: trap returned falsish for property 'Name'
throws at mydomain/auraFW/javascript/mhontaYdOya4Y_lBu7v9yg/aura_prod.js:2:27687
HTML Code:
<template>
<template if:true=wiredContact>
wiredContact.Name
<lightning-input value=wiredContact.Name onchange=updateName></lightning-input>
</template>
</template>
JS:
import LightningElement ,wire,track,api from 'lwc';
import myContact from "@salesforce/apex/ContactController.fetchContact";
export default class Myrefreshapextest extends LightningElement
@track wiredContact;
@wire (myContact)
fetchedContact(error, data)
if(data)
console.log(JSON.stringify(data));
this.wiredContact = data;
else if (error)
console.log(error);
updateName (event)
console.log(JSON.stringify(event.detail.value));
console.log(JSON.stringify(this.wiredContact));
this.wiredContact.Name = event.detail.value;
Apex:
public class ContactController
@AuraEnabled(cacheable=true)
public static Contact fetchContact()
return [SELECT Id,Name FROM COntact LIMIT 1];
On top of my head, am not doing anything wrong, anyone has idea what's wrong with my code?
When I print console.log(JSON.stringify(this.wiredContact));
I get old values so am pretty sure it exists.
I tried with @track and @api, but same response. Can anyone shed some light?
lightning-web-components
lightning-web-components
asked Apr 5 at 16:38
Pranay JaiswalPranay Jaiswal
18.8k53158
18.8k53158
Do you get same issue when you use the individual field names viz.,FirstName
?
– Jayant Das
Apr 5 at 16:41
Same errorUncaught TypeError: 'set' on proxy: trap returned falsish for property 'FirstName' throws at
its same error doesnt matter if its normal contact or personAccountContact.
– Pranay Jaiswal
Apr 5 at 16:43
I got the error (not exactly the same) but was able to replicate. Seems like you cannot set a value directly to the property instead recreate the JSON and then assign. E.g.,this.wiredContact = ["Name:" + event.detail.value];
this worked. Still trying to figure out.
– Jayant Das
Apr 5 at 16:57
@JayantDas It's a design feature. One that I'm pretty sure isn't documented.
– sfdcfox
Apr 5 at 17:09
@sfdcfox I just saw the behavior you mentioned just by trying it out, and it worked, even though my format above is not JSON, but I was intending that.
– Jayant Das
Apr 5 at 17:15
|
show 1 more comment
Do you get same issue when you use the individual field names viz.,FirstName
?
– Jayant Das
Apr 5 at 16:41
Same errorUncaught TypeError: 'set' on proxy: trap returned falsish for property 'FirstName' throws at
its same error doesnt matter if its normal contact or personAccountContact.
– Pranay Jaiswal
Apr 5 at 16:43
I got the error (not exactly the same) but was able to replicate. Seems like you cannot set a value directly to the property instead recreate the JSON and then assign. E.g.,this.wiredContact = ["Name:" + event.detail.value];
this worked. Still trying to figure out.
– Jayant Das
Apr 5 at 16:57
@JayantDas It's a design feature. One that I'm pretty sure isn't documented.
– sfdcfox
Apr 5 at 17:09
@sfdcfox I just saw the behavior you mentioned just by trying it out, and it worked, even though my format above is not JSON, but I was intending that.
– Jayant Das
Apr 5 at 17:15
Do you get same issue when you use the individual field names viz.,
FirstName
?– Jayant Das
Apr 5 at 16:41
Do you get same issue when you use the individual field names viz.,
FirstName
?– Jayant Das
Apr 5 at 16:41
Same error
Uncaught TypeError: 'set' on proxy: trap returned falsish for property 'FirstName' throws at
its same error doesnt matter if its normal contact or personAccountContact.– Pranay Jaiswal
Apr 5 at 16:43
Same error
Uncaught TypeError: 'set' on proxy: trap returned falsish for property 'FirstName' throws at
its same error doesnt matter if its normal contact or personAccountContact.– Pranay Jaiswal
Apr 5 at 16:43
I got the error (not exactly the same) but was able to replicate. Seems like you cannot set a value directly to the property instead recreate the JSON and then assign. E.g.,
this.wiredContact = ["Name:" + event.detail.value];
this worked. Still trying to figure out.– Jayant Das
Apr 5 at 16:57
I got the error (not exactly the same) but was able to replicate. Seems like you cannot set a value directly to the property instead recreate the JSON and then assign. E.g.,
this.wiredContact = ["Name:" + event.detail.value];
this worked. Still trying to figure out.– Jayant Das
Apr 5 at 16:57
@JayantDas It's a design feature. One that I'm pretty sure isn't documented.
– sfdcfox
Apr 5 at 17:09
@JayantDas It's a design feature. One that I'm pretty sure isn't documented.
– sfdcfox
Apr 5 at 17:09
@sfdcfox I just saw the behavior you mentioned just by trying it out, and it worked, even though my format above is not JSON, but I was intending that.
– Jayant Das
Apr 5 at 17:15
@sfdcfox I just saw the behavior you mentioned just by trying it out, and it worked, even though my format above is not JSON, but I was intending that.
– Jayant Das
Apr 5 at 17:15
|
show 1 more comment
2 Answers
2
active
oldest
votes
Cached items are set as read-only (because otherwise you could corrupt the cache). If you want a modifiable object, you need to clone it.
this.wiredContact = Object.assign(, data);
Based on comments, you can also use the rest parameter syntax in LWC:
this.wiredContact = ...data;
2
+1 forObject.assign()
. Didn't know something like this existed.
– Jayant Das
Apr 5 at 18:24
1
Thanks sfdcfox. You are truly a Javascript wizard.
– Pranay Jaiswal
Apr 5 at 18:30
@JayantDas In ES6, the syntactic sugar is:this.wiredContact = ...data;
– tsalb
Apr 5 at 23:32
@tsalb Thanks for sharing. I now recollect coming it across on one of Pranay’s another question
– Jayant Das
Apr 6 at 0:09
1
One thing to note is that if the returned object is a complex one (for example an object with nested objects) it seems the nested objects are not "cloned" since trying to modify them will result is the same immutable error. In such case, theObject.assign
and...data
doesn't seem to do the trick, onlyJSON.parse(JSON.stringify(data))
– jonathanwiesel
Apr 10 at 15:04
|
show 4 more comments
This is what I could find from the documentation for wired service and that seems to be the case here (emphasis mine).
The wire service provisions an immutable stream of data to the component
So it most likely seems that when trying to set the values directly using this.wiredContact.Name
, because of it's read only property, the values are not getting set.
However if you try to create a new data and then assign it to this.wiredContact
, it works:
this.wiredContact = "Name:" + event.detail.value + "";
This solution presumes only one field. If you have multiple fields, you must remember to encode all of them or lose data. The solution I presented avoids this problem by copying everything on initialization, leaving the variable free to be modified in all other function calls.
– sfdcfox
Apr 5 at 18:20
Yeah, this was a more direct answer to the problem that Pranay had mentioned. I am not really good at JS, so didn't even know how to do so unless you mentioned.
– Jayant Das
Apr 5 at 18:22
+1 thanks for linking documentation. This was freaking me out.
– Pranay Jaiswal
Apr 5 at 18:29
2
I started looking only when @sfdcfox mentioned it was possibly not :) But at least it is mentioned. Easy to miss!
– Jayant Das
Apr 5 at 18:30
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "459"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f256761%2funcaught-typeerror-set-on-proxy-trap-returned-falsish-for-property-name%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Cached items are set as read-only (because otherwise you could corrupt the cache). If you want a modifiable object, you need to clone it.
this.wiredContact = Object.assign(, data);
Based on comments, you can also use the rest parameter syntax in LWC:
this.wiredContact = ...data;
2
+1 forObject.assign()
. Didn't know something like this existed.
– Jayant Das
Apr 5 at 18:24
1
Thanks sfdcfox. You are truly a Javascript wizard.
– Pranay Jaiswal
Apr 5 at 18:30
@JayantDas In ES6, the syntactic sugar is:this.wiredContact = ...data;
– tsalb
Apr 5 at 23:32
@tsalb Thanks for sharing. I now recollect coming it across on one of Pranay’s another question
– Jayant Das
Apr 6 at 0:09
1
One thing to note is that if the returned object is a complex one (for example an object with nested objects) it seems the nested objects are not "cloned" since trying to modify them will result is the same immutable error. In such case, theObject.assign
and...data
doesn't seem to do the trick, onlyJSON.parse(JSON.stringify(data))
– jonathanwiesel
Apr 10 at 15:04
|
show 4 more comments
Cached items are set as read-only (because otherwise you could corrupt the cache). If you want a modifiable object, you need to clone it.
this.wiredContact = Object.assign(, data);
Based on comments, you can also use the rest parameter syntax in LWC:
this.wiredContact = ...data;
2
+1 forObject.assign()
. Didn't know something like this existed.
– Jayant Das
Apr 5 at 18:24
1
Thanks sfdcfox. You are truly a Javascript wizard.
– Pranay Jaiswal
Apr 5 at 18:30
@JayantDas In ES6, the syntactic sugar is:this.wiredContact = ...data;
– tsalb
Apr 5 at 23:32
@tsalb Thanks for sharing. I now recollect coming it across on one of Pranay’s another question
– Jayant Das
Apr 6 at 0:09
1
One thing to note is that if the returned object is a complex one (for example an object with nested objects) it seems the nested objects are not "cloned" since trying to modify them will result is the same immutable error. In such case, theObject.assign
and...data
doesn't seem to do the trick, onlyJSON.parse(JSON.stringify(data))
– jonathanwiesel
Apr 10 at 15:04
|
show 4 more comments
Cached items are set as read-only (because otherwise you could corrupt the cache). If you want a modifiable object, you need to clone it.
this.wiredContact = Object.assign(, data);
Based on comments, you can also use the rest parameter syntax in LWC:
this.wiredContact = ...data;
Cached items are set as read-only (because otherwise you could corrupt the cache). If you want a modifiable object, you need to clone it.
this.wiredContact = Object.assign(, data);
Based on comments, you can also use the rest parameter syntax in LWC:
this.wiredContact = ...data;
edited Apr 6 at 15:34
answered Apr 5 at 17:05
sfdcfoxsfdcfox
266k13212459
266k13212459
2
+1 forObject.assign()
. Didn't know something like this existed.
– Jayant Das
Apr 5 at 18:24
1
Thanks sfdcfox. You are truly a Javascript wizard.
– Pranay Jaiswal
Apr 5 at 18:30
@JayantDas In ES6, the syntactic sugar is:this.wiredContact = ...data;
– tsalb
Apr 5 at 23:32
@tsalb Thanks for sharing. I now recollect coming it across on one of Pranay’s another question
– Jayant Das
Apr 6 at 0:09
1
One thing to note is that if the returned object is a complex one (for example an object with nested objects) it seems the nested objects are not "cloned" since trying to modify them will result is the same immutable error. In such case, theObject.assign
and...data
doesn't seem to do the trick, onlyJSON.parse(JSON.stringify(data))
– jonathanwiesel
Apr 10 at 15:04
|
show 4 more comments
2
+1 forObject.assign()
. Didn't know something like this existed.
– Jayant Das
Apr 5 at 18:24
1
Thanks sfdcfox. You are truly a Javascript wizard.
– Pranay Jaiswal
Apr 5 at 18:30
@JayantDas In ES6, the syntactic sugar is:this.wiredContact = ...data;
– tsalb
Apr 5 at 23:32
@tsalb Thanks for sharing. I now recollect coming it across on one of Pranay’s another question
– Jayant Das
Apr 6 at 0:09
1
One thing to note is that if the returned object is a complex one (for example an object with nested objects) it seems the nested objects are not "cloned" since trying to modify them will result is the same immutable error. In such case, theObject.assign
and...data
doesn't seem to do the trick, onlyJSON.parse(JSON.stringify(data))
– jonathanwiesel
Apr 10 at 15:04
2
2
+1 for
Object.assign()
. Didn't know something like this existed.– Jayant Das
Apr 5 at 18:24
+1 for
Object.assign()
. Didn't know something like this existed.– Jayant Das
Apr 5 at 18:24
1
1
Thanks sfdcfox. You are truly a Javascript wizard.
– Pranay Jaiswal
Apr 5 at 18:30
Thanks sfdcfox. You are truly a Javascript wizard.
– Pranay Jaiswal
Apr 5 at 18:30
@JayantDas In ES6, the syntactic sugar is:
this.wiredContact = ...data;
– tsalb
Apr 5 at 23:32
@JayantDas In ES6, the syntactic sugar is:
this.wiredContact = ...data;
– tsalb
Apr 5 at 23:32
@tsalb Thanks for sharing. I now recollect coming it across on one of Pranay’s another question
– Jayant Das
Apr 6 at 0:09
@tsalb Thanks for sharing. I now recollect coming it across on one of Pranay’s another question
– Jayant Das
Apr 6 at 0:09
1
1
One thing to note is that if the returned object is a complex one (for example an object with nested objects) it seems the nested objects are not "cloned" since trying to modify them will result is the same immutable error. In such case, the
Object.assign
and ...data
doesn't seem to do the trick, only JSON.parse(JSON.stringify(data))
– jonathanwiesel
Apr 10 at 15:04
One thing to note is that if the returned object is a complex one (for example an object with nested objects) it seems the nested objects are not "cloned" since trying to modify them will result is the same immutable error. In such case, the
Object.assign
and ...data
doesn't seem to do the trick, only JSON.parse(JSON.stringify(data))
– jonathanwiesel
Apr 10 at 15:04
|
show 4 more comments
This is what I could find from the documentation for wired service and that seems to be the case here (emphasis mine).
The wire service provisions an immutable stream of data to the component
So it most likely seems that when trying to set the values directly using this.wiredContact.Name
, because of it's read only property, the values are not getting set.
However if you try to create a new data and then assign it to this.wiredContact
, it works:
this.wiredContact = "Name:" + event.detail.value + "";
This solution presumes only one field. If you have multiple fields, you must remember to encode all of them or lose data. The solution I presented avoids this problem by copying everything on initialization, leaving the variable free to be modified in all other function calls.
– sfdcfox
Apr 5 at 18:20
Yeah, this was a more direct answer to the problem that Pranay had mentioned. I am not really good at JS, so didn't even know how to do so unless you mentioned.
– Jayant Das
Apr 5 at 18:22
+1 thanks for linking documentation. This was freaking me out.
– Pranay Jaiswal
Apr 5 at 18:29
2
I started looking only when @sfdcfox mentioned it was possibly not :) But at least it is mentioned. Easy to miss!
– Jayant Das
Apr 5 at 18:30
add a comment |
This is what I could find from the documentation for wired service and that seems to be the case here (emphasis mine).
The wire service provisions an immutable stream of data to the component
So it most likely seems that when trying to set the values directly using this.wiredContact.Name
, because of it's read only property, the values are not getting set.
However if you try to create a new data and then assign it to this.wiredContact
, it works:
this.wiredContact = "Name:" + event.detail.value + "";
This solution presumes only one field. If you have multiple fields, you must remember to encode all of them or lose data. The solution I presented avoids this problem by copying everything on initialization, leaving the variable free to be modified in all other function calls.
– sfdcfox
Apr 5 at 18:20
Yeah, this was a more direct answer to the problem that Pranay had mentioned. I am not really good at JS, so didn't even know how to do so unless you mentioned.
– Jayant Das
Apr 5 at 18:22
+1 thanks for linking documentation. This was freaking me out.
– Pranay Jaiswal
Apr 5 at 18:29
2
I started looking only when @sfdcfox mentioned it was possibly not :) But at least it is mentioned. Easy to miss!
– Jayant Das
Apr 5 at 18:30
add a comment |
This is what I could find from the documentation for wired service and that seems to be the case here (emphasis mine).
The wire service provisions an immutable stream of data to the component
So it most likely seems that when trying to set the values directly using this.wiredContact.Name
, because of it's read only property, the values are not getting set.
However if you try to create a new data and then assign it to this.wiredContact
, it works:
this.wiredContact = "Name:" + event.detail.value + "";
This is what I could find from the documentation for wired service and that seems to be the case here (emphasis mine).
The wire service provisions an immutable stream of data to the component
So it most likely seems that when trying to set the values directly using this.wiredContact.Name
, because of it's read only property, the values are not getting set.
However if you try to create a new data and then assign it to this.wiredContact
, it works:
this.wiredContact = "Name:" + event.detail.value + "";
answered Apr 5 at 17:20
Jayant DasJayant Das
18.7k21331
18.7k21331
This solution presumes only one field. If you have multiple fields, you must remember to encode all of them or lose data. The solution I presented avoids this problem by copying everything on initialization, leaving the variable free to be modified in all other function calls.
– sfdcfox
Apr 5 at 18:20
Yeah, this was a more direct answer to the problem that Pranay had mentioned. I am not really good at JS, so didn't even know how to do so unless you mentioned.
– Jayant Das
Apr 5 at 18:22
+1 thanks for linking documentation. This was freaking me out.
– Pranay Jaiswal
Apr 5 at 18:29
2
I started looking only when @sfdcfox mentioned it was possibly not :) But at least it is mentioned. Easy to miss!
– Jayant Das
Apr 5 at 18:30
add a comment |
This solution presumes only one field. If you have multiple fields, you must remember to encode all of them or lose data. The solution I presented avoids this problem by copying everything on initialization, leaving the variable free to be modified in all other function calls.
– sfdcfox
Apr 5 at 18:20
Yeah, this was a more direct answer to the problem that Pranay had mentioned. I am not really good at JS, so didn't even know how to do so unless you mentioned.
– Jayant Das
Apr 5 at 18:22
+1 thanks for linking documentation. This was freaking me out.
– Pranay Jaiswal
Apr 5 at 18:29
2
I started looking only when @sfdcfox mentioned it was possibly not :) But at least it is mentioned. Easy to miss!
– Jayant Das
Apr 5 at 18:30
This solution presumes only one field. If you have multiple fields, you must remember to encode all of them or lose data. The solution I presented avoids this problem by copying everything on initialization, leaving the variable free to be modified in all other function calls.
– sfdcfox
Apr 5 at 18:20
This solution presumes only one field. If you have multiple fields, you must remember to encode all of them or lose data. The solution I presented avoids this problem by copying everything on initialization, leaving the variable free to be modified in all other function calls.
– sfdcfox
Apr 5 at 18:20
Yeah, this was a more direct answer to the problem that Pranay had mentioned. I am not really good at JS, so didn't even know how to do so unless you mentioned.
– Jayant Das
Apr 5 at 18:22
Yeah, this was a more direct answer to the problem that Pranay had mentioned. I am not really good at JS, so didn't even know how to do so unless you mentioned.
– Jayant Das
Apr 5 at 18:22
+1 thanks for linking documentation. This was freaking me out.
– Pranay Jaiswal
Apr 5 at 18:29
+1 thanks for linking documentation. This was freaking me out.
– Pranay Jaiswal
Apr 5 at 18:29
2
2
I started looking only when @sfdcfox mentioned it was possibly not :) But at least it is mentioned. Easy to miss!
– Jayant Das
Apr 5 at 18:30
I started looking only when @sfdcfox mentioned it was possibly not :) But at least it is mentioned. Easy to miss!
– Jayant Das
Apr 5 at 18:30
add a comment |
Thanks for contributing an answer to Salesforce Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f256761%2funcaught-typeerror-set-on-proxy-trap-returned-falsish-for-property-name%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Do you get same issue when you use the individual field names viz.,
FirstName
?– Jayant Das
Apr 5 at 16:41
Same error
Uncaught TypeError: 'set' on proxy: trap returned falsish for property 'FirstName' throws at
its same error doesnt matter if its normal contact or personAccountContact.– Pranay Jaiswal
Apr 5 at 16:43
I got the error (not exactly the same) but was able to replicate. Seems like you cannot set a value directly to the property instead recreate the JSON and then assign. E.g.,
this.wiredContact = ["Name:" + event.detail.value];
this worked. Still trying to figure out.– Jayant Das
Apr 5 at 16:57
@JayantDas It's a design feature. One that I'm pretty sure isn't documented.
– sfdcfox
Apr 5 at 17:09
@sfdcfox I just saw the behavior you mentioned just by trying it out, and it worked, even though my format above is not JSON, but I was intending that.
– Jayant Das
Apr 5 at 17:15