私は、私が作成したコンポーネントがあります。レンダリング時にonClickが呼び出されるのはなぜですか? - React.js
class Create extends Component {
constructor(props) {
super(props);
}
render() {
var playlistDOM = this.renderPlaylists(this.props.playlists);
return (
<div>
{playlistDOM}
</div>
)
}
activatePlaylist(playlistId) {
debugger;
}
renderPlaylists(playlists) {
return playlists.map(playlist => {
return <div key={playlist.playlist_id} onClick={this.activatePlaylist(playlist.playlist_id)}>{playlist.playlist_name}</div>
});
}
}
function mapStateToProps(state) {
return {
playlists: state.playlists
}
}
export default connect(mapStateToProps)(Create);
I render
このページ、activatePlaylist
が私のmap
に各playlist
のために呼ばれています。好きなら私bind
activatePlaylist
:
activatePlaylist.bind(this, playlist.playlist_id)
は、私はまた、匿名関数を使用することができます。
予想通り、それは動作します。なぜこれが起こるのですか?
私は前のバージョンの「React」でこのように動作していたのを覚えていません。間違ったことを覚えているのですか? – jhamm
@jhammあなたはES6クラスを使用しています。この場合は、手動でコンテキストをバインドする必要があります。 –
@jhamm https://jsfiddle.net/69z2wepo/23823/ –