修复React Material-Table以显示远程数据的问题

问题描述 投票:0回答:1

我有一个作为数组对象发送的远程数据。我将此转换为JSON数组,以便在Material数据表中显示此数据。我可以调用API,并且在记录响应时,可以看到转换后的JSON为以下数据:

[{"xxxx":"xxxx","yyyy":5,"zzzz":3,"tttt":1,"qqqqq":"some-data"}]

[不幸的是,我也无法在实现分页的同时在表中显示此数据。请在下面找到我的代码,并协助我解决此问题:

data={query =>
          new Promise((resolve, reject) => {
            let formData = new FormData();
            const userid = 'someID'

            formData.append('userid', userid);
            const config = {
              headers: { 'content-type': 'multipart/form-data' },
            };

            let url = 'http://urlendpoint?'
            url += 'per_page=' + query.pageSize
            url += '&page=' + (query.page + 1)
            fetch(url, {
              method: 'POST',
              body: formData,
              config
            })
              .then(response => response.json())
              .catch((error) => {
                console.log(error.response);
              })
              .then(result => {
                let resultData = JSON.stringify(result);
                console.log('result: ' + resultData);
                resolve({
                  data: resultData,
                  page: resultData.page - 1,
                  totalCount: resultData.total,
                })
              })
          })
        }

此外,我正在以下链接上实现物料表:https://material-table.com/#/docs/features/remote-data

javascript json reactjs es6-promise material-table
1个回答
0
投票

我实际上删除了对JSON字符串的转换,并且一切正常。请参阅下面的更新代码:

data={query =>
  new Promise((resolve, reject) => {
    let formData = new FormData();
    const userid = 'someID'

    formData.append('userid', userid);
    const config = {
      headers: { 'content-type': 'multipart/form-data' },
    };

    let url = 'http://urlendpoint?'
    url += 'per_page=' + query.pageSize
    url += '&page=' + (query.page + 1)
    fetch(url, {
      method: 'POST',
      body: formData,
      config
    })
      .then(response => response.json())
      .catch((error) => {
        console.log(error.response);
      })
      .then(result => {
            console.log('result: ' + result);
            resolve({
              data: result,
              page: result.page - 1,
              totalCount: result.total,
            })
          })
  })
}
© www.soinside.com 2019 - 2024. All rights reserved.