Javascript 单击后选择一个特定的todo id

Javascript 单击后选择一个特定的todo id,javascript,reactjs,graphql,Javascript,Reactjs,Graphql,我正在创建一个简单的待办事项应用程序,我正在以这样的道具获取数据 id:"5b3447a7b9d0e02144538972" text:"biibbb" 在GraphQL Server中,我现在想要的是,当我单击todo复选框时,我只想记录特定todo的id,但是,它会记录整个id,如下所示: 5b3447a7b9d0e02144538972 5b36ecfdcc8e551bb02b4dac 5b36ed01cc8e551bb02b4dad 5b3702facc8e551bb02b4dae

我正在创建一个简单的待办事项应用程序,我正在以这样的道具获取数据

id:"5b3447a7b9d0e02144538972"
text:"biibbb"
在GraphQL Server中,我现在想要的是,当我单击todo复选框时,我只想记录特定todo的id,但是,它会记录整个id,如下所示:

5b3447a7b9d0e02144538972
5b36ecfdcc8e551bb02b4dac
5b36ed01cc8e551bb02b4dad
5b3702facc8e551bb02b4dae
,有人能推荐一下吗

handleCheckBox = index => {
       console.log(index);
  }
  render() {
    const {data: {loading, todos}} = this.props;
    if(loading) {
      return null;
    }
    return (
        <div>
          {todos.map(todo => (
          <List key={todo.id}>
          <Checkbox
                onClick={this.handleCheckBox(todo.id)}
             />
         .....
handleCheckBox=index=>{
控制台日志(索引);
}
render(){
const{data:{loading,todos}}=this.props;
如果(装载){
返回null;
}
返回(
{todo.map(todo=>(
.....

您当前正在渲染方法中直接调用
handleCheckBox
。您希望为
onClick
提供函数引用

因此,与此相反:

<Checkbox onClick={this.handleCheckBox(todo.id)} />

这样做:

<Checkbox onClick={() => this.handleCheckBox(todo.id)} />
this.handleCheckBox(todo.id)}/>

@JasonWilliam很棒!请记住事件处理程序(
onClick
onChange
,…)需要一个在事件发生时可以调用的函数。您不应该自己调用事件处理程序函数。