Как добавить событие onclick в рендерер ячейки ag-grid responsejs и получить доступ к функции класса - PullRequest
0 голосов
/ 25 февраля 2019

Я хотел бы добавить кнопку для столбца таблицы ag-grid в responsejs при определении столбца времени.И на клик мне нужно вызвать функцию класса.Я хотел бы создать событие onclick, передать значение параметров в функцию и выполнить вызов API оттуда.

columnDefs = [{
    ..... {
      headerName: "View",
      field: "id",
      sortable: false,
      filter: false,
      colId: "view",
      cellRendererFramework: function(params) {
        return <Button onclick = {
          this.handleClick
        } > Test < /Button>
      },

    },
    ......
  ];
}
handleClick() {
  console.log("some API call and state change");
}



render() {

    return ( <
      div >
      <
      div id = "myGrid"
      style = {
        {
          height: "100%",
          width: "100%"
        }
      }
      className = "ag-theme-material" >
      <
      AgGridReact enableSorting = {
        true
      }
      groupSelectsChildren = {
        true
      }
      rowData = {
        this.state.organization
      }
      columnDefs = {
        this.columnDefs
      }

      onGridReady = {
        this.onGridReady
      } >

      <
      /AgGridReact>

      <
      /div>


    }
    export default OrganizationList;

1 Ответ

0 голосов
/ 01 марта 2019

Вместо использования cellRenderer в определении столбца используйте cellRendererFramework, чтобы agGridReact знал, что вы возвращаете элемент jsx.

Например:

colDefs = [{ ...{
headerName: "View",
field: "id",
colId: "view",
cellRendererFramework: function(params) {
  return <button onClick={ this.handleClick }> Test </button>
},
  },
  ....
}]

также не забудьте привязать средство визуализации ячеекфункция к конструктору класса компонента, иначе вы не сможете получить доступ к this.

...