0

HTML

<template>
    <lightning-card>
        <lightning-record-form object-api-name={objectApiName}
            onsuccess = {handleSuccess}
            fields={CONTACT_FIELDS}> 
        </lightning-record-form>
    </lightning-card>
</template>

JS

import { LightningElement} from 'lwc';
import CONTACT_OBJECT from '@salesforce/schema/Contact';
import FIRST_NAME_FIELD from '@salesforce/schema/Contact.FirstName';
import LAST_NAME_FIELD from '@salesforce/schema/contact.LastName';
import EMAIL_FIELD from '@salesforce/schema/contact.Email';
import {showToastEvent } from 'lightning/platformShowToastEvent'
export default class ContactCreator extends LightningElement {
    objectApiName = CONTACT_OBJECT;
    CONTACT_FIELDS = [FIRST_NAME_FIELD,LAST_NAME_FIELD,EMAIL_FIELD];
    handleSuccess(event){
        const toastEvent = new showToastEvent({
            title: "Contact Created",
            message: event.detail.id,
            variant: "success"
        });
        this.dispatchEvent(toastEvent);
    }
}

Now when I use the component to create a contact record I receive the following error:

[NoErrorObjectAvailable] Script error.
a()@https://static.lightning.force.com/ap27/auraFW/javascript/nj61v-uP3bGswhb-VTdr6Q/aura_prod.js:1025:196
{anonymous}()@https://static.lightning.force.com/ap27/auraFW/javascript/nj61v-uP3bGswhb-VTdr6Q/aura_prod.js:1025:389
dispatchEvent()@https://static.lightning.force.com/ap27/auraFW/javascript/nj61v-uP3bGswhb-VTdr6Q/aura_prod.js:21:32794
P.dispatchEvent()@https://static.lightning.force.com/ap27/auraFW/javascript/nj61v-uP3bGswhb-VTdr6Q/aura_prod.js:21:8008
P.handleSuccess()@https://resourceful-raccoon-s4pqyc-dev-ed.lightning.force.com/components/lightning/recordForm.js:1:7969

I already am using event.detail correctly so what am I missing?

1 Answers1

1

JavaScript is case sensitive so when you are importing import {showToastEvent } from 'lightning/platformShowToastEvent' make sure that you use import {ShowToastEvent } from 'lightning/platformShowToastEvent' ( Capital 'S' )

import { LightningElement} from 'lwc';
import CONTACT_OBJECT from '@salesforce/schema/Contact';
import FIRST_NAME_FIELD from '@salesforce/schema/Contact.FirstName';
import LAST_NAME_FIELD from '@salesforce/schema/contact.LastName';
import EMAIL_FIELD from '@salesforce/schema/contact.Email';
import {ShowToastEvent  } from 'lightning/platformShowToastEvent'
export default class Test1 extends LightningElement {


objectApiName = CONTACT_OBJECT;
fields = [FIRST_NAME_FIELD,LAST_NAME_FIELD,EMAIL_FIELD];
handleSuccess(event) {
  
    const evt = new ShowToastEvent ({
        title: 'Contact created',
        message: 'Record ID: ' + event.detail.id,
        variant: 'success',
    });
    this.dispatchEvent(evt);
}
}
  • Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Apr 04 '22 at 10:34