我正在将组件传递给嵌套组件onClick
方法,该方法修改父组件的状态。
当某个组件(不确定它是父级还是子级)被挂载时,会以某种方式调用该方法。现在,我收到以下错误消息:
未捕获错误:不变违规:setState(...):无法更新 在现有状态转换期间(例如在
render
内)。给予 方法应该是props和state.invariant的纯函数
传递孩子的代码如下所示
var playlists = this.props.data.map(function(playlist) {
return (
<PlaylistItem key={playlist.id}
data={playlist}
showPlaylistCode={this.getPlaylistCodeData}
/>
);
}.bind(this));
答案 0 :(得分:1)
在播放列表项目组件第20行中,尝试将其更改为:
<div className="playlistCode i mfi-qr-code" onClick={this.props.showPlaylistCode.bind(this, this.props.data.id)}></div>
当你需要向在React中使用onClick的函数发送参数时,你需要使用bind。与使用bind()一样,第一个参数应该是this的上下文,第二个参数应该是你想要发送给click处理函数的。