Reactjs 我对React中的状态值有疑问(请帮助我……)
如果数组是这样的,并且您希望通过访问memolist的第一个数组来获取标题。state.memolist[1]。title我可以这样访问它吗?我不知道该怎么办 问题3。 整个initialState值中的哪一个useSelector是否收到TODO?如何获得备忘录列表Reactjs 我对React中的状态值有疑问(请帮助我……),reactjs,Reactjs,如果数组是这样的,并且您希望通过访问memolist的第一个数组来获取标题。state.memolist[1]。title我可以这样访问它吗?我不知道该怎么办 问题3。 整个initialState值中的哪一个useSelector是否收到TODO?如何获得备忘录列表 如果您能告诉我一件事,我将非常感激……您的示例不仅仅是使用React本身。它还使用Redux来维护和改变应用程序的全局状态 方法todos()接受一个状态(默认值为initialState)和一个操作,并基于该操作返回一个变化
如果您能告诉我一件事,我将非常感激……您的示例不仅仅是使用React本身。它还使用Redux来维护和改变应用程序的全局状态 方法todos()接受一个状态(默认值为initialState)和一个操作,并基于该操作返回一个变化的状态 例如,如果操作的类型为ADD_TODO,则它将返回状态并添加一个附加项 TodosContainer正在使用“useSelector”从Redux存储中提取其值 在这种情况下,国家到底意味着什么?这是全部吗?我想通过add_MEMO type向备忘录列表添加一个数组,但它不能正常运行。有什么问题
- 对于每个减速器,它都需要一个初始状态。通过添加备忘录等操作,您可以更新备忘录列表等状态。通过以下步骤可以更好地理解redux流程
- 如果要更新数组,必须以不变的方式进行。它不会像concat()一样工作<代码>状态:state.memolist.concat(action.todo)
备忘录列表[0]。标题
整个initialState值中的哪一个useSelector是否收到TODO?如何获得备忘录列表
- useSelector接受一个函数,我们称之为选择器函数。选择器是一个函数,它将整个Redux存储状态作为参数,从状态中读取一些值,然后返回结果
- 运行下一行后,尝试打印状态值。就像从所有的东西中,你会选择你的东西
const todos=useSelector(state=>state.memolist)代码>我在第一个问题中提到的状态是指函数“todos”中的状态
//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;
current_memo:0,
memolist:[
{
id:1,
title:'i am',
text:'is tired'
},
{
id:2,
title:'who am i',
text:'where is it'
},
]
case ADD_TODO:
return{
...state,
memolist: [ ... state.memolist ,
{
id: action.todo.id,
text: action.todo.text,
completed: true
}
]
current_memo: action.todo.id
}