Я использую функцию 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;
}```