【发布时间】:2021-01-13 07:02:21
【问题描述】:
我有一个反应服务器正在运行,我的目的是在复选框中有任何更改时console log 一些数据。
我有两个 jsx 文件第一个 Todo.jsx 正在映射数据并将其发送到其他 jsx 文件 Option.jsx 返回一个 JSX 组件,最后我使用 Todo.jsx 文件在我的应用程序中显示组件.
Todo.jsx
import Option from "./Option";
const Obj = [
{
id: 1,
name: "A Sample data",
user: "XYZ"
},
.
.
. // data objects
];
// data of the todo list
class Todo extends React.Component {
constructor(){
super()
this.state={
components : Obj
}
this.Change = this.Change.bind(this)
}
Change(id){ // the function that I am passing as props
console.log("Changed",id)
}
render(){
var Components = this.state.components.map(function (obj) {
return <Option key={obj.id} name={obj.name} user={obj.user} Change = {this.Change} />;
});
return (<div>{Components}</div>)
}
}
export default Todo;
Option.jsx
只有一个返回组件的函数
function Option (props) {
return (
<div
className="m-todo"
style={{ backgroundColor: props.user ? "orangeRed" : "green" }}
>
<p style={{ color: "white", fontSize: 18 }}>
<input type="checkbox" onChange={()=>{props.Change(props.id)}}></input> {props.name}:
</p>
<hr />
<p >{props.user}</p>
</div>
);
}
我无法理解我错过了什么。函数永远无法识别,当我尝试console.log(props) 时,它会显示undefined
【问题讨论】:
标签: javascript reactjs function ecmascript-6