2017-03-12 8 views
0

プロパティ非アクティブ関数を使用せずに、非同期関数をbabelとバインドしようとしています。 (私はテストをしています)。私がバインドする必要があるのは、onClickに追加されたためにthisが失われるためです。コンストラクタでの非同期関数のバインド

以下のようにeditEntryで問題なく動作します。非同期ではありません。しかし、私はdeleteEntryにしようとすると、エラーが発生します。

TypeError: _this.saveEntry is undefined

これは私のクラスである:

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; 
    } 
} 

答えて

2

this.saveEntryは、その名前のメソッドがないので、あなただけsaveEditを持って、未定義です。あなたはおそらく意味:

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

私はこれは笑っている – Noitidart

関連する問題