1

I am comng across an error that I am unsure how to solve. I am using force:recordData to update a field.

Component

<aura:attribute name="record" type="Object" />
<aura:attribute name="simpleRecord" type="Opportunity" />
<aura:attribute name="recordError" type="String" />
<aura:attribute name="fieldsToQuery" type="String" />

<force:recordData aura:id="recordEditor"
layoutType="FULL"
fields="{!v.fieldsToQuery}"                  
recordId="{!v.recordId}"
targetError="{!v.recordError}"
targetRecord="{!v.record}"
targetFields ="{!v.simpleRecord}"
mode="EDIT" 
/>

Js Controller: (where field1 is a checkbox field)

({
doInit : function(component, event, helper) {

        component.set("v.simpleRecord.Initiate_Scoring__c", true);
                    component.find("recordEditor").saveRecord($A.getCallback(function(saveResult) {
                    if (saveResult.state === "SUCCESS" || saveResult.state === "DRAFT") {
                        alert("Save completed successfully.");
                    } else if (saveResult.state === "INCOMPLETE") {
                        alert("User is offline, device doesn't support drafts.");
                    } else if (saveResult.state === "ERROR") {
                        alert('Problem saving record, error: ' + 
                                   JSON.stringify(saveResult.error));
                    } else {
                       alert('Unknown problem, state: ' + saveResult.state + ', error: ' + JSON.stringify(saveResult.error));
                    }
                }));       
},

 onRender: function(component, event, helper) {      

    $A.get("e.force:closeQuickAction").fire();
},      

})

However it is coming up with the following message:

[Error while creating content for lightning component quick action]
quickActionHandlerHelper.js failed to create component - 
forceChatter:lightningComponent

Updated Question with the new error message.

Any Suggestions?

  • @M guy- If you have a different error, after update made as per suggested answer, please either use comments or post a new question. – Mahmood Mar 26 '18 at 13:50
5

You're updating Boolean field with text

component.set("v.simpleRecord.field1", "true");

It should be like this:

 component.set("v.simpleRecord.field1", true);
  • 1
    Also you shouldn't set an attribute's field in this way - you should do like that: var simpleRecord = component.get("v.simpleRecord"); then change the field simpleRecord.field1 = true; then set the attribute back component.set("v.simpleRecord", simpleRecord); – Itai Shmida Mar 27 '18 at 8:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.