反应状态无法改变

时间:2018-03-20 13:21:09

标签: javascript reactjs this

在未定义此函数之前,组件调用函数后,它将变为未定义。我无法改变状态。

export default class Chart extends React.Component {

   constructor(props) {
    super(props);
    var obj=JSON.stringify(this.props.data);
     this.state={data: obj};
   }

   insert(){

     //here it shows undefined
     console.log(this)
     var json=JSON.parse(this.state.data);
     //...
   }

   render() {
     //here shows non-undefined this
     console.log(this)
     return(
     //...
      //here calls the fuction that causes the error
     <button className="btn" onClick={this.insert}>Add New</button>
     </div>
     //...
     );
   }

这是错误

Uncaught TypeError: Cannot read property 'state' of undefined
at insert (Chart.js:72)

enter image description here

1 个答案:

答案 0 :(得分:1)

你在这里失去了范围:

onClick={this.insert}

只做

onClick={() => this.insert()}

保留它。