รายละเอียดสำหรับเรียนรู้ React ปี 2020-2023 โดยโค้ชพล ดูหลักสูตรได้ที่ https://www.nextflow.in.th/react-training
เราจะเปิดไฟล์ src/redux/homepage.reducer.js
และมีการ import actions เข้ามาใช้กับ switch case ใน reducer
import Actions from '../redux/actions'
//...
export default (state = initialState, { type, payload }) => {
switch (type) {
case Actions.ActionTypes.SAVE_NEW_NOTE: {
// log ดูค่าที่ส่งเข้ามาใน reducer
console.log(type, payload);
return {
...state
}
}
default:
return state
}
}
ทดสอบดูว่าตอนเรากดปุ่ม มี log แสดงขึ้นมาเป็นอะไร
ในกรณีนี้เราแค่ต้องการเติมข้อความใหม่ลงไปใน array ที่ชื่อ notes
ของ state เดิม เราสามารถเขียนได้แบบนี้
case Actions.ActionTypes.SAVE_NEW_NOTE: {
return {
...state,
notes: [ ...state.notes, { title: payload }]
}
}
{
...state
}
{
...state,
notes: [ ...state.notes ]
}
{
...state,
notes: [ ...state.notes, { title: payload }]
}
import Actions from '../redux/actions'
const initialState = {
notes : [
{
title: 'wowwwww.'
}
]
}
export default (state = initialState, { type, payload }) => {
switch (type) {
case Actions.ActionTypes.SAVE_NEW_NOTE: {
return {
...state,
notes: [ ...state.notes, { title: payload }]
}
}
default:
return state
}
}