Course Content
Expert React
4. Formik
Powerful Form Library for ReactGet Started with FormikCustom Formik HookInvolve Formik into React componentAdd Initial ValuesForm SubmissionForm ValidationChallenge OverviewChallenge: useFormik HookChallenge: Binding Formik with React ComponentChallenge: Add Initial ValuesChallenge: Form SubmissionChallenge: ValidationFormik Section Sum Up
6. Next Steps
Expert React
Challenge: Involve Redux into React
Step 4: Involve Redux logic into React app
Focus on involving Redux logic in a React app. Connect React components and the Redux store to enable state management and actions.
Example
Ship Tracker App
Challenge
Form.jsx:
- Open the
Form.jsx
file. - Import the
useDispatch
hook from thereact-redux
package. This hook will be used to dispatch actions to the Redux store. - Import the
addGoal
action from thegoalAction.js
file. This action is responsible for adding a goal to the Redux store. - Initialize the
dispatch
variable inside the component by calling theuseDispatch
hook. - Complete the
handleFormSubmit
function by dispatching theaddGoal
action. Use thedispatch
function and pass in an object with the goal details:{ id: Date.now(), text: goal }
. TheDate.now()
generates a unique ID for each goal. - Reset the form after submission by calling the
resetForm
function.
GoalList.jsx:
- Open the
GoalList.jsx
file. - Import the
useDispatch
anduseSelector
hooks from thereact-redux
package. These hooks will be used to access the Redux store and dispatch actions. - Import the
removeGoal
action from thegoalAction.js
file. This action is responsible for removing a goal from the Redux store. - Initialize the
goals
variable using theuseSelector
hook and access thegoals
state from the Redux store. - Initialize the
dispatch
variable by calling theuseDispatch
hook. - Complete the
handleRemoveGoal
function by dispatching theremoveGoal
action. Pass in thegoal
as a parameter. - Finish the logic of rendering the array of goals by mapping over the
goals
array and rendering each goal. - Display the text of each goal and add a button with an
onClick
event that calls thehandleRemoveGoal
function and passes in the respectivegoal
.
Hint
1. Use the
2. Work with the
3.Ensure the payload of the
4. Implement the
5. Utilize the
useDispatch
and useSelector
hooks to
access the Redux store and dispatch actions.2. Work with the
removeGoal
and addGoal
actions
from goalAction.js
to handle actions related to goals.
3.Ensure the payload of the
addGoal
action includes a unique
id
generated using Date.now()
and the text value
from the input field.4. Implement the
handleRemoveGoal
function to dispatch the
removeGoal
action with the corresponding goal. 5. Utilize the
map
function to iterate over the
goals
array and render each goal, displaying its text.
Everything was clear?
Section 3. Chapter 12