面试题答案
一键面试- 状态初始化:
- 在React组件的
constructor
或使用useState
钩子来初始化状态。假设使用函数式组件和useState
:
import React, { useState } from'react'; const TodoList = () => { const [todos, setTodos] = useState([ { id: 1, text: '学习React', completed: false }, { id: 2, text: '完成项目', completed: false } ]); return ( // 后续JSX代码 ); }; export default TodoList;
- 在React组件的
- 更新函数写法:
- 要切换单个待办事项的完成状态,需要创建一个更新函数。可以使用
map
方法遍历todos
数组,找到对应的待办事项并更新其completed
状态。
const toggleTodo = (todoId) => { setTodos(todos.map(todo => todo.id === todoId ? {...todo, completed:!todo.completed } : todo )); };
- 要切换单个待办事项的完成状态,需要创建一个更新函数。可以使用
- 在JSX中绑定事件和展示数据:
- 遍历
todos
数组,展示每个待办事项的文本和完成状态,并为每个待办事项绑定toggleTodo
函数。
return ( <ul> {todos.map(todo => ( <li key={todo.id}> <input type="checkbox" checked={todo.completed} onChange={() => toggleTodo(todo.id)} /> {todo.text} </li> ))} </ul> );
- 遍历
上述代码通过useState
初始化了待办事项列表数据状态,toggleTodo
函数实现了单个待办事项完成状态的切换,在JSX中通过map
遍历展示数据并绑定事件,确保列表整体正确渲染。