Skip to content

Instantly share code, notes, and snippets.

@patwadeepak
Created July 23, 2021 07:00
Show Gist options
  • Save patwadeepak/c88d9a803f10e5c0be4d685a57cc4f58 to your computer and use it in GitHub Desktop.
Save patwadeepak/c88d9a803f10e5c0be4d685a57cc4f58 to your computer and use it in GitHub Desktop.
The Redux Way - PostForm.js
import "../CSS/PostForm.css";
import { useState } from "react";
import { connect } from "react-redux";
import { object } from "prop-types";
import { createNewPost } from "../actions/postActions";
const initialFormState = { title: "", body: "" };
const PostForm = ({ createNewPost }) => {
const [formData, setFormData] = useState(initialFormState);
const handleChange = (ev) => {
setFormData({
...formData,
[ev.target.name]: ev.target.value,
});
};
const handlePostIt = (ev) => {
ev.preventDefault();
createNewPost(formData);
setFormData(initialFormState);
};
return (
<div className="postform-container">
<label htmlFor="title">Title</label>
<input
type="text"
name="title"
onChange={handleChange}
value={formData.title}
/>
<br />
<label htmlFor="body">Post</label>
<textarea name="body" onChange={handleChange} value={formData.body} />
<br />
<button type="submit" onClick={handlePostIt}>
Post it
</button>
</div>
);
};
const mapStateToProps = (state) => ({});
export default connect(mapStateToProps, { createNewPost })(PostForm);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment