在构造函数中绑定异步函数

时间:2017-03-12 18:16:12

标签: babeljs

我正在尝试使用babel绑定异步函数,而不使用属性初始化器。 (我正在做一个测试)。我需要绑定的原因是因为它们被添加到onClick,这使得它们失去了this

它适用于下面的editEntry,因为它不是异步的。但是当我尝试使用deleteEntry时会导致错误:

  

TypeError:_this.saveEntry未定义

这是我的班级:

class RowActions extends Component {
    constructor(props) {
        super(props);
        console.warn('binding functions');
        this.editEntry = this.editEntry.bind(this);
        this.saveEntry = this.saveEntry.bind(this);
        console.warn('binding functions done');
    }
    editEntry(e) {
        let { blah } = this.props;
        e.preventDefault();
    }
    async saveEdit(e) {
        let { blah } = this.props;
        e.preventDefault();
    }
    render() {
        let { blah } = this.props;
    }
}

1 个答案:

答案 0 :(得分:2)

this.saveEntry未定义,因为没有具有该名称的方法,您只有saveEdit。你可能意味着:

this.saveEdit = this.saveEdit.bind(this);