В модели рядов на стороне сервера Tridata ag-grid, нажимая топор ios, чтобы получить дочерние данные, но treedata не отображается - PullRequest
0 голосов
/ 04 апреля 2020

Я использую функцию treedata модели строки на стороне сервера предприятия Я бью еще один топор ios api, чтобы получить данные о детях, основанные на ответе из предыдущего топора ios api. Но это не похоже на работу. Treedata не загружается. Так как загрузка данных детей занимает больше времени. А вызов ax ios является асинхронным, дочерние данные не определены.

```onGridReady(params) {
    this.gridApi = params.api;
    this.gridApi.sizeColumnsToFit();
    const updateData = data => {
      var fakeServer = this.createFakeServer(data);
      var datasource = this.createServerSideDatasource(fakeServer);
      params.api.setServerSideDatasource(datasource);
    };
    this.setState({loading: true});
    const url = 'http://localhost:8080/datacopy/fetchContextByComponent';
    axios.get(url, {
      headers: {'Access-Control-Allow-Origin': 'true'},
      params: {
        component: this.props.component,
        assetClass: this.props.assetClass,
        subComponent: this.props.subComponent,
      }
    })
      .then(res => res.data)
      .then((contextData) => {
          const treedata= contextData.map((context) => {

            return {
              contextKey: context.contextKey,
              serviceName: context.serviceName,
              contextName: context.contextName,

              children: (function (contextKey, serviceName, contextName){
                this.renderContextArray(contextKey, serviceName, contextName)
              }).call( this,context.contextKey, context.serviceName, context.contextName)
            }})

          console.log('treedata',treedata);
          updateData(treedata)

        }
      )

  }```

Here below is the method to get children data:-

```renderContextArray(contextKey,serviceName,contextName){
      axios.get('http://localhost:8080/datacopy/getContextDetails',{
      headers: {'Access-Control-Allow-Origin': 'true'},
      params: {
        contextName:contextName,
        serviceName:serviceName,
        contextKey:contextKey
      }
    }) .then(res => res.data)
      .then((contextArrayData) => {
          const treedata= contextArrayData.map((context) => {
            console.log('context',context);
            return {
              contextKey: context.contextKey,
              contextRunType: context.contextRunType,
              processRunType: context.processRunType,
              contextLevel:context.contextLevel
            }})
          this.setState({
            childData:treedata,
            loading:false
          })
        }
      )
    return this.state.childData;
  }```
...