React出现TypeError: props.todoList is undefined错误如何解决?
FARM栈Todo应用代码问题修复方案
明确语法错误修复
- 模板字符串使用错误
位置:
Todo.js文件中deleteTodoHandler方法内的axios.delete调用
错误原因:JS中需要用**反引号()**包裹模板字符串才能解析${变量}语法,当前你用单引号包裹请求地址,会导致${title}`不会被替换为实际的todo标题,请求路径完全错误。
修复后代码:axios.delete(`http://localhost:8000/api/todo/${title}`).then(res => console.log(res.data))
- 行内样式属性配置错误
位置:
Todo.js文件中<span>标签的style属性
错误原因:fontWeight仅控制字体粗细,下划线效果属于textDecoration属性,你把两个属性值拼接后赋值给fontWeight,会导致样式完全失效。
修复后代码:<span style={{ fontWeight: 'bold', textDecoration: 'underline' }}>{props.todo.title} : </span>
- 列表渲染缺少唯一key属性
位置:
TodoListView.js文件中数组map遍历渲染TodoItem的逻辑
错误原因:React要求列表渲染的每个子组件必须绑定唯一key属性,否则会抛出运行时警告,极端情况下会触发列表渲染异常。
修复后代码:{props.todoList.map(todo => <TodoItem key={todo.title} todo={todo} />)}
其他潜在问题排查方向
如果修复上述错误后功能仍异常,可按优先级排查:
- 检查FastAPI后端是否配置了CORS跨域中间件,允许React前端地址的跨域请求,否则浏览器会直接拦截接口请求
- 确认后端删除接口的路由规则是否和前端请求的
/api/todo/{title}完全匹配,参数占位符是否一致 - 查看浏览器控制台的报错信息,可快速定位接口404、参数格式错误等问题
内容的提问来源于stack exchange,提问作者imsobadatcoding
相关产品推荐
相关产品推荐

