React之Antd table表格渲染按钮问题

问题描述:table表格渲染表格数据时,会自动触发操作列中Button的onClick函数,表格渲染完成后,点击Button按钮,onClick函数不能被触发。

// 定义表格表头数据
问题写法: 
const columns = [
            {
              title:'编号',
              dataIndex:'key',
              key:'key',
              render:(text,record,index)=>{
                      return <span>{size*(currenPage-1)+1+index}</span>
              },
              align: 'center'
            },
            { title: '日期', dataIndex: 'holiday', key: 'holiday' ,align: 'center' },
           
            { 
               title: '操作',
               dataIndex: '', onClick={()=>this.delete(text.id)}
               key: 'x',
               render: (text) =>  <Button   onClick={this.delete(text.id)}>删除</Button>   // 问题所在处
               align: 'center' 
    }
          ];
// 定义删除按钮的回调函数
   delete=(text)=>{
      const {page,size} = this.state
      // console.log(text);
      deleteHoliday(text).then(response=>{
        if(response.code === 20000){
          message.success('删除成功');
          this.setState({currenPage:1})
          this.init(page,size)
        }else{
          message.error('删除失败');
        }
      })
    }
 
解决方法: 
上网查询后,同行说官方文档的写法确实有这个bug,要改成下面的写法
 { 
               title: '操作',
               dataIndex: '', onClick={()=>this.delete(text.id)}
               key: 'x',
               render: (text) =>  <Button   onClick={()=>this.delete(text.id)}>删除</Button>   // 解决方案
               align: 'center' 
 }
具体是什么说法,我也解释不太清楚,反正问题是解决了,期望对大家有所帮助
posted @ 2020-05-03 12:14  木子李木子  阅读(4565)  评论(0编辑  收藏  举报