私はES6の矢印の機能は、「彼らが呼ばれたときにthis
コンテキストを保存する。」それを理解したよう私はReactコンポーネントで、クラスメソッドでこれをバインドするための例を見てきました。 アロー機能は、「これは」で動作していない結合成分リアクト
constructor(props) {
super(props);
this.getContent = this.getContent.bind(this);
this.handleClick = this.handleClick.bind(this);
}
しかし、私は矢印の機能に
handleClick = (event) => {
this.props.openForm();
}
を使用しようとするとされていない理由、私は次のエラー
Module build failed: SyntaxError: Unexpected token (18:14)
16 | }
17 |
> 18 | handleClick = (event) => {
| ^
19 | this.props.openForm();
20 | }
21 |
を得る:私は、私はこのようなコンストラクタでバインドすることができます知っていますこれは働いている?
ここで完全なコンポーネント
import React from 'react';
import Section from './Section';
import { connect } from 'react-redux';
import * as actions from '../actions/actions';
class Contact extends React.Component {
getContent() {
return this.props.content || {};
}
handleClick = (event) => {
this.props.openForm();
}
render() {
return (
<Section heading="Contact" bg="white">
<div className="contact">
<h3 className="contact__heading">{ this.getContent().heading }</h3>
<p>{ this.getContent().text }</p>
<button className="contact__button contact__btn-dialog"
onClick={ this.handleClick }>
Send a message
</button>
</div>
</Section>
);
}
}
const mapDispatchToProps = (dispatch) => {
return {
openForm:() => {
dispatch(actions.showContactForm(true));
}
};
};
export default connect(
null,
mapDispatchToProps
)(Contact);
またhttps://stackoverflow.com/a/43601993/3731501 – estus
これらの質問が話題を共有することconcidentalない、矢印のプロパティ対バインドに参照してください。 Dupeの質問は*全く同じ問題を抱えており、[原因と解決策](https://stackoverflow.com/a/41464305/3731501)も同じでなければなりません。重複質問で提案されている解決策がうまくいかなかった場合は、更新された詳細で質問を再入力することを検討してください。 – estus
私は、コメントのリンクを見ていたstackoverflow.com/a/43601993/3731501私は後にリンクを見て、エラーを実現しました。 – mhatch