0

I am trying to create Lightning Code with will create an Account Record and navigate to its record detail page... However, I keep getting error as "Cannot Read property setParams of undefined"

Updated comp.cmp

<aura:dependency resource="markup://force:navigateToSObject" type="EVENT"/>

<aura:attribute name="myObj" type="Account" default="{'SObject':'Account'}"/>

<div class="slds-page-header">
    Account entry form...
</div>

<lightning:input type="text" name="accountName" label="Enter Account Name" value="{!v.myObj.Name}"/>
<lightning:input type="text" name="accountPhn" label="Enter Account Phone" value="{!v.myObj.Phone}"/>
<br/>
<lightning:button label="Save" onclick="{!c.saveAcc}"/>

<br/>
<!-- <c:comp2EventBased/> -->

Updated comp.js:

({ tstEvt : function(component, event, helper) { var evt = event.getParam("evt"); alert(":: Event Val :: "+evt); },

saveAcc : function(component, event, helper) {
    debugger;
    var obj = component.get("v.myObj");
    var action = component.get("c.createAcc");
    action.setParams({
        "myObj":obj
    });

    action.setCallback(this, function(acnt){            
        var state = action.getState(acnt);
        if (state == "SUCCESS") {
            var accID = acnt.getReturnValue();
            alert(":: Newly Created Account ID is :: "+accID);
            var navEvt = $A.get("e.force:navigateToSObject");
            navEvt.setParams({
                "recordId":accID,
                "slideDevName": "related"
            });
            navEvt.fire();
        }
    });        
    $A.enqueueAction(action);
}

})

saveAndReturnAcc.axpc:

public class saveAndReturnAcc {

    @AuraEnabled
    public static Id createAcc(Account myObj){

        insert myObj;
        return myObj.Id;

    }
}

Important to note that as soon as I remove the below redirection, it works fine:

var navLink = component.find("navLink");
                var pageRef = {
                    type: 'standard__recordPage',
                    attributes: {
                        actionName: 'view',
                        objectApiName: 'Account',
                        recordId : accID
                    }
                };
                navLink.navigate(pageRef);
            }

Stuck for a while here... Appreciate help.

2
  • Why you are not using Lightning Data Service? May 2, 2019 at 11:20
  • Hello Sanket, Sorry I am new to Lightning Development... Hence don't know much about it. Will read about it for sure.
    – Varun SFDC
    May 2, 2019 at 11:42

1 Answer 1

0

Did you try to use "force:navigateToSObject":

createRecord : function (component, event, helper) {
    var navEvt = $A.get("e.force:navigateToSObject");
    navEvt.setParams({
      "recordId": "00QB0000000ybNX",
      "slideDevName": "related"
    });
    navEvt.fire();
}
8
  • Hello Mo Hamada, Tried it... Unfortunately it doesn't give any error but doesn't redirect either.
    – Varun SFDC
    May 2, 2019 at 9:29
  • The only reason for this, is that maybe your browser is blocking the pop ups. enable them and try it again
    – Mo Hamada
    May 2, 2019 at 9:31
  • No Popup Blocker(Popups and Redirects are allowed)... but it just alerts for this alert(":: Newly Created Account ID is :: "+accID);) and nothing happens
    – Varun SFDC
    May 2, 2019 at 9:39
  • alerts for this? what do you mean?
    – Mo Hamada
    May 2, 2019 at 9:41
  • I have editted my comment
    – Varun SFDC
    May 2, 2019 at 9:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .