Как загрузить JSON в таблицу ag-grid (React)?

avatar
mmarion
1 июля 2021 в 16:38
224
1
0

Я новичок в использовании ag-grid и внедряю его в свой проект React. С этим я сделал следующую таблицу:

class Table extends Component {
   constructor(props) {
     super(props)

     this.state = {
        columnDefs: [
            { headerName: "Column 1", field: "col1"},
        ],
        rowData: [
            { 'col1': 'Hello'},
            { 'col1': 'World'},
        ],
      }
   }

   render() {
      return (
        <div className="ag-theme-alpine" style={{ height: 400, width: 605 }}>
            <AgGridReact
                columnDefs={this.state.columnDefs}
                rowData={this.state.rowData}>
            </AgGridReact>
        </div>
      );
    }
};

Теперь у меня есть возможность получить JSON с помощью .fetch, и я хочу загрузить значения JSON в свою таблицу. Например, скажем, мой JSON приходит так:

{'col1': 'Jeff',
 'col1' : 'Sophie',
 'col1' : 'Kelly'}

Как мне загрузить эти значения в мою таблицу выше? Я попытался добавить в таблицу следующий метод componentDidMount, но затем таблица становится серой и говорит "загрузка..." и никогда не завершает загрузку:

 componentDidMount(){
      myData= getData()  //method calls fetch and returns my JSON items
      this.setState({
            rowData: myData
       });
  }
Источник

Ответы (1)

avatar
Shuheb
2 июля 2021 в 07:44
0

Исходя из предоставленного вами кода, я не вижу ничего, что могло бы вызвать эту проблему. Это может быть связано с вашей функцией getData.

См. этот пример, который устанавливает rowData на componentDidMount, вызывая fetch: https://plnkr.co/edit/K2gC2Qc6tKc3huTT

  componentDidMount() {
    const updateData = (data) => {
      this.setState({ rowData: data });
    };

    fetch('https://www.ag-grid.com/example-assets/olympic-winners.json')
      .then((resp) => resp.json())
      .then((data) => updateData(data));
  }