Open tsungtingdu opened 4 years ago
data
屬性來接資料,但一般習慣上會用 payload
這個字,主要是因為 Redux 是根據 Flux 的概念加以實作,而 Flux 對於 Action 有建議撰寫的規範,不需要完全一樣,不過可以再參考看看:{
type: 'ADD_TODO',
payload: {
text: 'Do something.'
}
}
const postReducer = (state = {}, action) => {
// ...
case 'CREATE_POST_SUCCESS':
return {
...state,
...action.data,
}
case 'SAVE_POST_SUCCESS':
return {
...state,
...action.data,
}
// ...
}
有些時候,會直接定義一個 type 為 UPDATE
的 action,然後是該資料要更新就直接 dispatch 它,像是這樣:
const postReducer = (state = {}, action) => {
// ...
case 'UPDATE':
return {
...state,
...action.data,
}
// ...
}
至於這樣好不好 debug 則見仁見智。另外,還有一種做法是,不要直接使用 ...action.data
,而是把需要用的資料先取出來,再給進去,這麼做的好處是可以知道每次到底更新的什麼:
const postReducer = (state = {}, action) => {
// ...
case 'CREATE_POST_SUCCESS':
const {foo, bar} = action.data
return {
...state,
foo,
bar
}
// ...
}
components
資料夾名稱拼錯了喔 conponents
完成 socket 架構
多人編輯測試資料:
user1@gmail.com / 12345678 -> My Notes -> Hello socket!
user2@gmail.com / 12345678 -> Collaborative Notes -> Hello socket!
https://github.com/tsungtingdu/heymd/commit/69b3f37a7424f1422b59c1dc0fe888ae95ddb77c 完成 publish/unpublish 功能
花了不少時間研究如何定位 caret,但後來發現水有點深,所以先暫停。決定先把其他 features 做完
prevState
來做:https://github.com/tsungtingdu/heymd/commit/e602ee1360d54284d3556e9ef5888d5872ad4af0#r42728317--
14:10 Update
Backend
Frontend
2020.09.08 Meeting
Questions:
Discussions: