You need to sign in to do that
Don't have an account?
Bruno Palma
Component Error
Hello,
im getting the following error ( this trailhead --> https://trailhead.salesforce.com/projects/workshop-override-standard-action )and can't figured out what it is. Some1 can help? Thank you.
Component
<aura:component implements="lightning:actionOverride,flexipage:availableForRecordHome,force:hasRecordId" access="global">
<aura:attribute name="picklistValues" type="Object" />
<aura:attribute name="propertyRecord" type="Property__c" />
<force:recordData aura:id="forceRecord"
recordId="{!v.recordId}"
targetFields="{!v.propertyRecord}"
fields="Id,Name,Beds__c,Baths__c,Price__c,Status__c"
mode="EDIT" />
<aura:handler name="init" value="{!this}" action="{!c.doInit}" />
<c:PickListValues sObjectName="Property__c" fieldName="Status__c" picklistValues="{!v.picklistValues}" />
<div aura:id="editDialog" role="dialog" tabindex="-1" aria-labelledby="header43" class="slds-modal slds-fade-in-open">
<div class="slds-modal__container">
<div class="slds-modal__header">
<h2 class="slds-text-heading--medium">New Record</h2>
</div>
<div class="slds-modal__content slds-p-around--medium slds-grid slds-wrap ">
<lightning:input aura:id="propName" name="propName" label="Property Name" required="true" class="slds-size--1-of-1 slds-p-horizontal_x-small" />
<lightning:input aura:id="propBeds" name="propBeds" label="Beds" class="slds-size--1-of-2 slds-p-horizontal_x-small" />
<lightning:input aura:id="propBaths" name="propBaths" label="Baths" class="slds-size--1-of-2 slds-p-horizontal_x-small" />
<lightning:input aura:id="propPrice" name="propPrice" label="Price" class="slds-size--1-of-2 slds-p-horizontal_x-small" />
<lightning:select aura:id="propStatus" name="propStatus" label="Status" class="slds-size--1-of-2 slds-p-horizontal_x-small">
<aura:iteration items="{!v.picklistValues}" var="item">
<option value="{!item}">{!item}</option>
</aura:iteration>
</lightning:select>
</div>
<div class="slds-modal__footer">
<lightning:button variant="neutral" label="Cancel" />
<lightning:button variant="brand" label="Submit" onclick="{!c.saveRecord}" />
</div>
</div>
</div>
<div aura:id="overlay" class="slds-backdrop slds-backdrop--open"></div>
</aura:component>
Controller
({
doInit : function(component, event, helper) {
component.find("forceRecord").getNewRecord(
"Property__c",
null,
false,
$A.getCallback(function() {
var rec = component.get("v.propertyRecord");
var error = component.get("v.recordError");
if (error || (rec === null)) {
console.log("Error initializing record template: " + error);
return;
}
})
);
},
saveRecord : function(component, event, helper){
var propBeds = parseInt(component.find('propBeds').get("v.value"), 10);
var propBaths = parseInt(component.find('propBaths').get("v.value"), 10);
var propPrice = parseInt(component.find('propPrice').get("v.value"), 10);
component.set("v.propertyRecord.Name", component.find('propName').get("v.value"));
component.set("v.propertyRecord.Beds__c", propBeds);
component.set("v.propertyRecord.Baths__c", propBaths);
component.set("v.propertyRecord.Price__c", propPrice);
component.set("v.propertyRecord.Status__c", component.find('propStatus').get("v.value"));
var tempRec = component.find("forceRecord");
tempRec.saveRecord($A.getCallback(function(result) {
console.log(result.state);
var resultsToast = $A.get("e.force:showToast");
if (result.state === "SUCCESS") {
resultsToast.setParams({
"title": "Saved",
"message": "The record was saved."
});
resultsToast.fire();
} else if (result.state === "ERROR") {
console.log('Error: ' + JSON.stringify(result.error));
resultsToast.setParams({
"title": "Error",
"message": "There was an error saving the record: " + JSON.stringify(result.error)
});
resultsToast.fire();
var recId = result.recordId;
helper.navigateTo(component, recId);
} else {
console.log('Unknown problem, state: ' + result.state + ', error: ' + JSON.stringify(result.error));
}
}));
}
})
im getting the following error ( this trailhead --> https://trailhead.salesforce.com/projects/workshop-override-standard-action )and can't figured out what it is. Some1 can help? Thank you.
Component
<aura:component implements="lightning:actionOverride,flexipage:availableForRecordHome,force:hasRecordId" access="global">
<aura:attribute name="picklistValues" type="Object" />
<aura:attribute name="propertyRecord" type="Property__c" />
<force:recordData aura:id="forceRecord"
recordId="{!v.recordId}"
targetFields="{!v.propertyRecord}"
fields="Id,Name,Beds__c,Baths__c,Price__c,Status__c"
mode="EDIT" />
<aura:handler name="init" value="{!this}" action="{!c.doInit}" />
<c:PickListValues sObjectName="Property__c" fieldName="Status__c" picklistValues="{!v.picklistValues}" />
<div aura:id="editDialog" role="dialog" tabindex="-1" aria-labelledby="header43" class="slds-modal slds-fade-in-open">
<div class="slds-modal__container">
<div class="slds-modal__header">
<h2 class="slds-text-heading--medium">New Record</h2>
</div>
<div class="slds-modal__content slds-p-around--medium slds-grid slds-wrap ">
<lightning:input aura:id="propName" name="propName" label="Property Name" required="true" class="slds-size--1-of-1 slds-p-horizontal_x-small" />
<lightning:input aura:id="propBeds" name="propBeds" label="Beds" class="slds-size--1-of-2 slds-p-horizontal_x-small" />
<lightning:input aura:id="propBaths" name="propBaths" label="Baths" class="slds-size--1-of-2 slds-p-horizontal_x-small" />
<lightning:input aura:id="propPrice" name="propPrice" label="Price" class="slds-size--1-of-2 slds-p-horizontal_x-small" />
<lightning:select aura:id="propStatus" name="propStatus" label="Status" class="slds-size--1-of-2 slds-p-horizontal_x-small">
<aura:iteration items="{!v.picklistValues}" var="item">
<option value="{!item}">{!item}</option>
</aura:iteration>
</lightning:select>
</div>
<div class="slds-modal__footer">
<lightning:button variant="neutral" label="Cancel" />
<lightning:button variant="brand" label="Submit" onclick="{!c.saveRecord}" />
</div>
</div>
</div>
<div aura:id="overlay" class="slds-backdrop slds-backdrop--open"></div>
</aura:component>
Controller
({
doInit : function(component, event, helper) {
component.find("forceRecord").getNewRecord(
"Property__c",
null,
false,
$A.getCallback(function() {
var rec = component.get("v.propertyRecord");
var error = component.get("v.recordError");
if (error || (rec === null)) {
console.log("Error initializing record template: " + error);
return;
}
})
);
},
saveRecord : function(component, event, helper){
var propBeds = parseInt(component.find('propBeds').get("v.value"), 10);
var propBaths = parseInt(component.find('propBaths').get("v.value"), 10);
var propPrice = parseInt(component.find('propPrice').get("v.value"), 10);
component.set("v.propertyRecord.Name", component.find('propName').get("v.value"));
component.set("v.propertyRecord.Beds__c", propBeds);
component.set("v.propertyRecord.Baths__c", propBaths);
component.set("v.propertyRecord.Price__c", propPrice);
component.set("v.propertyRecord.Status__c", component.find('propStatus').get("v.value"));
var tempRec = component.find("forceRecord");
tempRec.saveRecord($A.getCallback(function(result) {
console.log(result.state);
var resultsToast = $A.get("e.force:showToast");
if (result.state === "SUCCESS") {
resultsToast.setParams({
"title": "Saved",
"message": "The record was saved."
});
resultsToast.fire();
} else if (result.state === "ERROR") {
console.log('Error: ' + JSON.stringify(result.error));
resultsToast.setParams({
"title": "Error",
"message": "There was an error saving the record: " + JSON.stringify(result.error)
});
resultsToast.fire();
var recId = result.recordId;
helper.navigateTo(component, recId);
} else {
console.log('Unknown problem, state: ' + result.state + ', error: ' + JSON.stringify(result.error));
}
}));
}
})
recordId="{!v.recordId}" => exception for v.recordId because the declaration is not mandatory.
But the following declaration is missing (?):
<aura:attribute name="recordError" type="String"/>
<aura:attribute name="picklistValues" type="Object" />
<aura:attribute name="propertyRecord" type="Property__c" />
<force:recordData aura:id="forceRecord"
recordId="{!v.recordId}"
targetFields="{!v.propertyRecord}"
targetError="{!v.recordError}"
fields="Id,Name,Beds__c,Baths__c,Price__c,Status__c"
mode="EDIT" />
or
var rec = component.get("v.propertyRecord");
var error = component.get("v.recordError");if (
error ||(rec === null)) {https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/data_service_load_record.htm
There is clearly a problem in this trailhead project.