React Typescript is prevent me from being able to use the boilerplate code from emailJS.
I have modified the boiler plate code to fix one error on the UseRef() and const sendEmail.
I am getting the error on the form.current line in function sendForm().
Error: (property) React.RefObject.current: HTMLFormElement | null
Argument of type 'HTMLFormElement | null' is not assignable to parameter of type 'string | HTMLFormElement'. Type 'null' is not assignable to type 'string | HTMLFormElement'.ts(2345)
import React, { useRef } from 'react';
import emailjs from '@emailjs/browser';
export const ContactUs = () => {
const form = useRef<HTMLFormElement>(null);
const sendEmail = (e) => {
e.preventDefault();
emailjs.sendForm('YOUR_SERVICE_ID', 'YOUR_TEMPLATE_ID', form.current, 'YOUR_PUBLIC_KEY')
.then((result) => {
console.log(result.text);
}, (error) => {
console.log(error.text);
});
};
return (
<form ref={form} onSubmit={sendEmail}>
<label>Name</label>
<input type="text" name="user_name" />
<label>Email</label>
<input type="email" name="user_email" />
<label>Message</label>
<textarea name="message" />
<input type="submit" value="Send" />
</form>
);
};