reactのes7に挑戦中のタカシです。es7は美しさの代償としてあらゆるmethodsにthisをbindせざるおえなくなりました。たとえばこんな風に
class Counter extends React.Component {
constructor() {
super();
this.tick = this.tick.bind(this);
}
tick() {
...
}
...
}
もう少し美しくかけないかと模索していたところ、公式にそのまま載ってました。こんな感じです。
tick = () => {
alert(this.state.name)
};
これで動きます。thisをbindせずとも。ただし注意してください。最後のセミコロンは必須です。
まだまだ謎多きes7の世界。去年まではちょっと便利な書き方ができる程度に考えてましたが、jsを新しい言語へと昇華させる試みのように思えます。自由すぎたjsにある種の秩序をもたらしてくれることを期待しています。
参考:https://facebook.github.io/react/blog/2015/01/27/react-v0.13.0-beta-1.html#autobinding