รายละเอียดสำหรับเรียนรู้ React ปี 2020-2023 โดยโค้ชพล ดูหลักสูตรได้ที่ https://www.nextflow.in.th/react-training
reducer จะทำหน้าที่
สร้างไฟล์ redux/reducer.js
ใช้ snippet ชื่อ rxreducer
ได้
// import action type มาจากไฟล์ actions.js
import { ActionType } from "./actions"
// object เก็บข้อมูลที่จะแชร์ให้ทุก component
const initialState = {
// ประกาศ properties ไว้ใน state
allBranches: []
}
// function ที่จะทำหน้าที่รับ action ที่ส่งเข้ามาใน redux
// และทำการอัพเดตข้อมูลใน state ก่อนที่จะส่งออกไปให้ component ทุกตัว
export default (state = initialState, { type, payload }) => {
// รับ type ของ action มาเทียบว่าต้องจัดการข้อมูลที่อยู่ใน payload ยังไง
switch (type) {
// เทียบกรณีที่ได้รับ action type GET_BRANCH_LOCATION_FINISH
case ActionType.GET_BRANCH_LOCATION_FINISH:
return { ...state, ...payload };
// เทียบกรณีที่ได้รับ action type SHOW_BRANCH_CHART
case ActionType.SHOW_BRANCH_CHART:
return { ...state, ...payload };
// ถ้าเป็นการเริ่มต้นแอพ จะส่งค่าที่อยู่ใน initialState ออกไปให้ component แทน
default:
return state
}
}