4

Let's say I have an apex method like such:

@AuraEnabled
public static void myMethod(String myString){
    if (String.isBlank(myString)) {
        throw new AuraHandledException('Not Cool Bro.');
    }
}

and I have a Lightning Web Component with controller with a method like this:

import myMethod from '@salesforce/apex/MyClass.myMethod';

export default class YeOldeWebComponent extends LightningElement {
    @track myString;

callMyMethod() {
    console.log("Starting my method...");
    myMethod({myString: this.myString})
    .then(() => {
        console.log("My Method Was Successful!");
    })
    .catch(error => {
        console.log("My Method Was Not Successful :/");
        console.log(JSON.stringify(error));
        let myMessage = "Default Error Message.";
        this.showToast("Error!", myMessage , "error");
    });
}    
showToast(theTitle, theMessage, theVariant) {
                const event = new ShowToastEvent({
                    title: theTitle,
                    message: theMessage,
                    variant: theVariant
                });
                this.dispatchEvent(event);
            }

How do I get something useful (the original error message) out of the 'error' variable to pass to the showToast method?

------EDIT ------ I figured it out... it goes a little something like this:

.catch(error => {
        let errorMessage = TOAST_MESSAGE_ERROR;
        if ( error.body.message) {
            errorMessage =error.body.message;
        }
        this.showToast(TOAST_TITLE_ERROR, errorMessage, TOAST_VARIANT_ERROR);}
  • 1
    Hi Mitch, not sure if you've read How to Ask and How to Answer before, but they may be worth a quick read. Please post your discovery as an Answer rather than an edit. You can accept another answer if someone else provides something better. But putting the answer in your Question body is a bit awkward. – Adrian Larson Mar 15 at 21:24
3

Got it figured out - it looks like this!

.catch(error => {
    let errorMessage = TOAST_MESSAGE_ERROR;
    if ( error.body.message) {
        errorMessage =error.body.message;
    }
    this.showToast(TOAST_TITLE_ERROR, errorMessage, TOAST_VARIANT_ERROR);}

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.