安装组件时,响应触发器onclick

时间:2015-07-20 03:03:03

标签: reactjs

我正在将组件传递给嵌套组件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));

1 个答案:

答案 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处理函数的。