美文网首页
React 事件绑定

React 事件绑定

作者: SingleDiego | 来源:发表于2019-02-26 22:38 被阅读0次

先来看下面一段错误的代码:

import React, { Component } from 'react';

class Counter extends Component{
    state = {
        count: 1,
    };

    handleClick() {
        console.log('count:', this.state.count)
    };

    render() {
        return(<button onClick={ this.handleClick }>Click</button>); 
    };
}

上面代码之所以会报错,是因为当中 handleClick() 方法中的 this 并未指向实例本身,而是 undefined

有两种方法修正 this 的指向。

一种是在构造函数 constructor()bind() 方法绑定:

import React, { Component } from 'react';

class Counter extends Component{
    state = {
        count: 1,
    };

    constructor() {
        super();
        this.handleClick = this.handleClick.bind(this);
    };

    handleClick() {
        console.log('count:', this.state.count)
    };

    render() {
        return(<button onClick={ this.handleClick }>Click</button>); 
    };
}

第二种是利用箭头函数:

import React, { Component } from 'react';

class Counter extends Component{
    state = {
        count: 1,
    };

    handleClick = () => {
        console.log('count:', this.state.count)
    };

    render() {
        return(<button onClick={ this.handleClick }>Click</button>); 
    };
}

相关文章

网友评论

      本文标题:React 事件绑定

      本文链接:https://www.haomeiwen.com/subject/vwhtuqtx.html