json - ReactJS 从 Grails 获取 JSON
问题描述
我正在一个应用程序中工作,该应用程序在后端使用 Grails,在前端使用 ReactJS。
在控制器上,我使用 CreateCreteria 获取数据,然后将其映射并保存为 JSON。然后,在前端,我毫无问题地使用 JSON 加载 DataGrid。
Grails 控制器:
class ArtListEstadisticaController {
static responseFormats = ['json', 'xml']
def Ocs = new ClienteServidorService()
def springSecurityService
def index(Integer max) {
def w_count = VArtLista.createCriteria().count()
def results = VArtLista.createCriteria().list()
def traeSelectList = []
results.each {
def traeMap = [:]
traeMap.put('id', it.art.trim())
traeMap.put('art', it.art)
...
traeSelectList.add(traeMap)
}
JSONArray data = new JSONArray(traeSelectList);
response.setHeader 'Access-Control-Expose-Headers', 'Content-Range'
response.setHeader 'Content-Range', 'bytes : 0-10/' + w_count
render data as JSON
}
反应
import { List, Datagrid} from 'react-admin';
...
export const ArtEstadisticaDetalleList = withStyles(styles)(({classes, permissions, ...props}) => {
return (
<div>
<div style={{margin: '1em'}}>
<List {...props}
title=" " actions={<PostActions/>}
bulkActionButtons={false}
exporter={false} filters={<MFiltro/>}
perPage={25}
>
<Datagrid>
<TextField source="id"/>
<TextField label="Artículo" source="art"/>
...
</Datagrid>
</List>
</div>
</div>
) });
那工作没问题。但实际上,我需要在 2 个组件中使用相同的 JSON 以在同一页面中显示 DataGrid 和 Graph,但我不知道该怎么做。
像这样的东西:
export const ArtEstadisticaDetalleList = withStyles(styles)(({classes, permissions, ...props}) => {
/// Get JSon Data from the Controller
// const [paramJson, setparamJson] = useState( ??? );
return (
<div>
<ComponentDataGrid paramJson={paramJson}/>
<br>
<GraficoBarrasLineaBasica paramJson={paramJson}/>
</div>
) });
谢谢