รายละเอียดสำหรับเรียนรู้ React ปี 2020-2023 โดยโค้ชพล ดูหลักสูตรได้ที่ https://www.nextflow.in.th/react-training
ในที่นี้เราจะใช้ useDispatch()
ในการส่งข้อมูลที่ได้จาก form เข้า Redux
โดยการกำหนด type
และ payload
ของ object ที่ต้องการ ด้วยข้อมูลที่มี
// src/components/new-item/NewItemForm.js
import {useDispatch} from 'react-redux'
import Action from '../../redux/action'
//..
export default function NewItemForm() {
const dispatch = useDispatch()
//..
const onFinish = values => {
console.log(values);
dispatch({
type: Action.CREATE_NEW_ITEM,
payload: values
})
};
//..
}
// src/redux/reducer.js
import Action from './action'
const initialState = {
}
// parameter ตัวที่ 2 ของ Reducer function จะได้รับ action ที่ส่งเข้ามาจาก Redux store
// ส่วนนี้มีการใช้ Deconstructor เพื่อแยก property ของ Action object ออกมาเป็นชื่อ type และ payload
export default (state = initialState, { type, payload }) => {
switch (type) {
// check เทียบ action type กับชื่อที่กำหนด
case Action.CREATE_NEW_ITEM:
console.log('Creating new item... ')
// แสดง Payload ที่ได้มา
console.log(payload)
return { ...state, ...payload }
default:
return state
}
}