【发布时间】:2020-12-27 06:25:42
【问题描述】:
//todos.js
const ADD_TODO='todos/ADD_TODO';
const TOGGLE_TODO='todos/TOGGLE_TODO';
let nextId=1;
export const addTodo=(title,text)=>({
type:ADD_TODO,
todo:{
id:nextId++,
title,
text
}
});
export const toggleTodo=id=>({
type:TOGGLE_TODO,
id
});
const initialState={
current_memo:0,
memolist:[
{
id:1,
title:'i am',
text:'so tired'
},
]
};
export default function todos(state=initialState, action){
switch(action.type){
case ADD_TODO:
return{
...state,
state: state.memolist.concat(action.todo), //Question 1.
current_memo: action.todo.id
}
case TOGGLE_TODO:
return state.current_memo;
default:
return state;
}
}
//TodosContainer.js
function TodosContainer(){
const todos=useSelector(state=>state.todos); //Question 3.
const dispatch=useDispatch();
const onCreate=useCallback((title,text)=>dispatch(addTodo(title,text)),[dispatch]);
const onToggle=useCallback(id =>dispatch(toggleTodo(id)),[dispatch]);
return <Todos
todos={todos}
onCreate={onCreate}
onToggle={onToggle}
/>;
}
export default TodosContainer;
问题 1。 在这种情况下,状态到底是什么意思?是初始状态吗?我想通过ADD_MEMO类型给memolist添加一个数组,但是运行不正常。有什么问题?
问题 2。
current_memo:0,
memolist:[
{
id:1,
title:'i am',
text:'is tired'
},
{
id:2,
title:'who am i',
text:'where is it'
},
]
如果数组是这样的,你想通过访问memolist的第一个数组来获取标题。 state.memolist[1].title 我可以这样访问吗?我不知道方法。
问题 3。 整个initialState值中的哪一个是useSelector接收到的todos?如何获得备忘录?
如果你能告诉我一件事,我将非常感激......
【问题讨论】:
-
我在第一个问题中所说的状态是指函数'todos'中的状态
标签: reactjs