You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Next.js中如何访问对象数据?传递Todo对象至组件报错

如何在Todo组件中获取todo的name

结合你的代码截图梳理问题

你的Todo对象是包含id、name、done字段的数组项,TodoList负责循环渲染Todo组件,但当前props传递方式有误,导致Todo组件无法正确拿到todo对象。

修正步骤

  1. TodoList组件正确传递todo对象
    在循环渲染Todo组件时,要把单个todo对象通过props明确传递,代码示例:
// TodoList中的循环部分
{todos.map(todo => (
  <Todo key={todo.id} todo={todo} />
))}

注意:每个Todo必须绑定唯一key(用todo.id即可),同时确保传递的属性名为todo

  1. Todo组件正确接收并访问name
    如果是函数组件,直接解构props里的todo:
function Todo({ todo }) {
  return <div>{todo.name}</div>
}

如果是类组件,通过this.props访问:

class Todo extends React.Component {
  render() {
    return <div>{this.props.todo.name}</div>
  }
}

常见报错排查

  • 若出现Cannot read properties of undefined (reading 'name'):检查TodoList是否传递了todo={todo},或者属性名是否写错(比如误写成todoItem)
  • 若数组存在空值:先过滤无效项再循环,比如todos.filter(Boolean).map(...)

内容的提问来源于stack exchange,提问作者maztt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 13:15:57