Javascript ReactJS:无法读取属性<;问题>;

Javascript ReactJS:无法读取属性<;问题>;,javascript,arrays,reactjs,jsx,Javascript,Arrays,Reactjs,Jsx,问题:将“completed”属性设置为布尔值时 在我的待办事项列表中,使用toDoData.map(item=>)时不会检查 在我的ToDoData.js中,我将属性“completed”设置为true或false。每当我尝试时,它都会说“无法读取未定义的属性'completed'。。 另外,当我尝试显示“text”属性时,它不会接受.item,,而只接受props.item。我已经反复阅读代码,但似乎找不到解决问题的方法 这是我的密码: import React from "react"

问题:将“completed”属性设置为布尔值时 在我的待办事项列表中,使用toDoData.map(item=>)时不会检查

在我的ToDoData.js中,我将属性“completed”设置为true或false。每当我尝试时,它都会说“无法读取未定义的属性'completed'。。 另外,当我尝试显示“text”属性时,它不会接受.item,,而只接受props.item。我已经反复阅读代码,但似乎找不到解决问题的方法

这是我的密码:

import React from "react"


function Props(props) {
    return (
        <div>
      <h3><input type="checkbox" checked={props.item.completed}/></h3>      
    <p>{props.item.text}</p>
</div>

    )
}

export default Props

我明白问题所在。这里:

function Props(props) {
  return (
    <div>
      <h3><input type="checkbox" checked={props.item.completed}/></h3>      
      <p>{props.item.text}</p>
    </div>
  )
}
功能道具(道具){
返回(
{props.item.text}

) }
您正试图访问props.item.completed,但实际上您正在将实际的文本作为props传递,因此它将是props.text。 如果您查看一下Todoapp组件中的渲染函数,就会发现

render() {
  const ReturnToDo = ToDoData.map(item => <Props key={item.id} text={item.text}/>)

  return (<div>{ReturnToDo}</div> 
 )
}
render(){
const ReturnToDo=ToDoData.map(项=>)
return({ReturnToDo}
)
}
你通过了
您应该做的是将整个项目作为道具传递,如
,以便您可以在道具组件中使用它,如您正在尝试的那样

查看我在codesanbox中创建的示例


希望这有帮助,你永远不要将
项目
道具传递给你的
道具
组件。因此
道具项目
将是未定义的。你能给我看一个代码片段吗?我不安静地得到它:每当你得到“无法读取未定义的内容-有些地方出了问题,谢谢你,请记住!它有效!我没有阅读教程非常感谢。你能为我解释一下吗?item={item}?那么item={item}只是用来打印数据对吗?太棒了!很高兴它成功了。基本上,你传递的是道具名称项目,但你可以随意命名它,例如todoItem或someItem,或者你想要的任何名称,重要的是你传递的是实际项目。例如:
。清楚了吗?非常清楚,再次感谢你非常喜欢,但是如果我把它改成任何东西,就像你写的todoItem={item}我得到了和以前一样的错误。我试图在代码中更改它,但它起作用了。我可能做错了什么。一个是JSX属性,另一个是数据文件的参数。是的,现在你必须在Props组件中更改它,如
Props.todoItem
,因为你更改了道具的名称。
function Props(props) {
  return (
    <div>
      <h3><input type="checkbox" checked={props.item.completed}/></h3>      
      <p>{props.item.text}</p>
    </div>
  )
}
render() {
  const ReturnToDo = ToDoData.map(item => <Props key={item.id} text={item.text}/>)

  return (<div>{ReturnToDo}</div> 
 )
}