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' 
 }
具體是什么說法,我也解釋不太清楚,反正問題是解決了,期望對大家有所幫助


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM