Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 更改后的反应功能不工作_Reactjs - Fatal编程技术网

Reactjs 更改后的反应功能不工作

Reactjs 更改后的反应功能不工作,reactjs,Reactjs,我正在学习react js,我正在尝试做一个TODO应用程序,但我无法解决这个问题,onchange功能无法正常工作,浏览器显示没有错误 class ToDoList extends React.Component { constructor(props) { super(props); this.state = { tasks: [ {'task':"send resume to ramesh hr",'isChecked':'fa

我正在学习react js,我正在尝试做一个TODO应用程序,但我无法解决这个问题,onchange功能无法正常工作,浏览器显示没有错误

class ToDoList extends React.Component {
  constructor(props) {
      super(props);

      this.state = {
      tasks: [
          {'task':"send resume to ramesh hr",'isChecked':'false'},
      ]
    }
//this.onChange = this.onChange.bind(this);
   }

    handleCheckBox(e){
      console.log("dada");
    }
    onChange(e) {
       //Your change code here!!
    }

  render() {
    return (
        <ul className="task-list">
          {
            this.state.tasks.map(function(el, i) {  
              return (<li key={i}>
                      <div className="content">
                          <div className="tick">
                            <input type="checkbox" checked={el.isChecked}  onChange={this.onChange.bind(this)}/>
                          </div>
                      </div>
                    </li>)
            })  
          }
        </ul>
  );
  }
}
变化:

*您正在对map使用回调方法,因此您需要维护上下文。若要在map body中使用此关键字,请使用.bindthis和回调方法,或者为了避免此类错误,请使用arrow函数来完成此工作,您不必担心维护上下文

*您使用的是对象数组,所以请使用,以遵循不应直接在状态变量中进行任何更改的规则

*您需要在onchange方法中传递checkbox的索引,以切换该复选框的状态

检查工作代码:

类ToDoList扩展了React.Component{ 构造器{ 超级作物; 此.state={ 任务:[ {'task':将简历发送给ramesh hr,'isChecked':'false'}, ] } //this.onChange=this.onChange.bindthis; } 手电筒{ console.logdada; } onChangei,e{ 让tasks=JSON.parseJSON.stringifythis.state.tasks; 任务[i].isChecked=e.target.checked; this.setState{tasks}; console.log“单击”; } 渲染{ 回来 { this.state.tasks.mapel,i=>{ 回来 {el.task} } } ; } } ReactDOM.render,document.getElementById'app';
你怎么说它不起作用了?错误?目前正在发生什么?您需要指定它,因为您在onChange中没有执行任何操作,因此不会发生任何事情。此外,这并不是指映射中的组件,您可以使用胖箭头函数this.state.tasks.mapel,i=>{…}来修复它,或者绑定它。@Roljhon在放置此onChange后,将看不到任何内容code@FabianSchultz对不起,我不明白你的意思