How to use of post method in react js
Anil
Posted on June 14, 2024
This code is a React component that renders a form for creating a new post. Here's a detailed description of the code:
Imports
- React: Importing React to use JSX and other React functionalities.
- axios: Importing Axios for making HTTP requests.
import React from "react";
import axios from "axios";
export default function Create() {
const submitHandler = (event) => {
event.preventDefault();
const title = event.target.title.value;
const body = event.target.body.value;
const author = event.target.author.value;
const data = { title, body, author };
axios
.post("url", data)
.then((response) => {
console.log(response);
event.target.reset();
})
.catch((error) => {
console.log(error);
});
};
return (
<>
<div className="container">
<div className="row">
<div className="col-lg-8 col-md-10 mx-auto">
<p>Create a post......?</p>
<form
className="sentMessage"
id="contactForm"
onSubmit={submitHandler}
>
<div className="control-group">
<div className="form-group floating-label-form-group controls">
<label>Title</label>
<input
type="text"
className="form-control"
placeholder="Title"
id="title"
required
name="title"
/>
<p className="help-block text-danger"></p>
</div>
</div>
<div className="control-group">
<div className="form-group floating-label-form-group controls mt-3">
<label>Body</label>
<textarea
id="body"
className="form-control"
name="body"
placeholder="Body"
></textarea>
<p className="help-block text-danger"></p>
</div>
</div>
<div className="control-group">
<div className="form-group floating-label-form-group controls mt-3">
<label>Author</label>
<input
type="text"
className="form-control"
placeholder="Author"
id="author"
required
name="author"
/>
<p className="help-block text-danger"></p>
</div>
</div>
<br />
<div id="success"></div>
<button
type="submit"
className="btn btn-primary"
id="sendMessageButton"
>
Send
</button>
</form>
</div>
</div>
</div>
</>
);
}
Function Component: Create
The component is defined as a function named Create
.
submitHandler
Function
- Purpose: This function handles the form submission.
-
Parameters: Takes an
event
object as a parameter. -
Functionality:
- Prevents the default form submission behavior using
event.preventDefault()
. - Retrieves the values from the form fields (title, body, and author).
- Constructs a
data
object with these values. - Makes a POST request to a specified URL using Axios, sending the
data
object. - If the request is successful, logs the response and resets the form fields.
- If the request fails, logs the error.
- Prevents the default form submission behavior using
JSX Structure
The component returns a JSX fragment (<>...</>
) containing the following elements:
-
Container Div: A div with the class
container
to contain the form. -
Row Div: A div with the class
row
to structure the layout. -
Column Div: A div with classes
col-lg-8
,col-md-10
, andmx-auto
to center the form within the container. - Paragraph: A paragraph element with the text "Create a post......?".
-
Form: A form element with:
- Class
sentMessage
- ID
contactForm
-
onSubmit
handler set tosubmitHandler
- Class
Form Fields
The form contains three input fields and a submit button:
-
Title Input:
- Type:
text
- Class:
form-control
- Placeholder: "Title"
- ID:
title
- Required:
true
- Name:
title
- Type:
-
Body Textarea:
- Class:
form-control
- Placeholder: "Body"
- ID:
body
- Name:
body
- Class:
-
Author Input:
- Type:
text
- Class:
form-control
- Placeholder: "Author"
- ID:
author
- Required:
true
- Name:
author
- Type:
-
Submit Button:
- Type:
submit
- Class:
btn btn-primary
- ID:
sendMessageButton
- Text: "Send"
- Type:
Summary
This React component provides a form for creating a post with a title, body, and author. When the form is submitted, the submitHandler
function collects the input data and sends it to a specified URL using Axios. If the submission is successful, the form is reset; otherwise, any errors are logged to the console.
Posted on June 14, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.