【问题标题】:当我从 API 获取数据时,MUI-dataTables 出错
【发布时间】:2021-10-06 10:46:57
【问题描述】:

enter image description herecode我尝试从 API 获取数据并使用 MUI-dataTables 显示 但是发生了这个错误(您可以在附图中看到它)我将它与创建反应应用程序一起使用 **

import React,{useEffect,useContext, useState} from 'react'
import MUIDataTable from "mui-datatables";
import axios from'axios'
const columns = [
    {
        name: "name",
        label: " name",
        options: {
      filter: true,
      sort: true,
     }
    },
    {
        name: "username",
     label: " username",
     options: {
      filter: true,
      sort: true,
     }
    },
    {
        name: "email",
     label: "email",
     options: {
      filter: true,
      sort: true,
     }
    },
   ];
   

   


const options = {
    filterType: 'checkbox',
    serverSide: true
};

function Users() {
    const [users,setUsers]=useState('');
    useEffect(()=>{
      const getUsers = async ()=>{
         await axios.get('https://jsonplaceholder.typicode.com/users').then(response=>{
            setUsers(response.data);
         })
      };
      getUsers();
    },[])
    return (
        <div>
             <MUIDataTable
                title={" Users"}
                data={users}
                columns={columns}
                options={options}
            />
        </div>
    )
}

export default Users

【问题讨论】:

    标签: reactjs mui-datatable


    【解决方案1】:

    因为 MUIDataTable 中的 props data 需要一个数组。在获取 API 时,users 是一个字符串 ``(因为 const [users,setUsers]=useState('');)。所以出现了这个错误。

    要修复,你需要更新users的初始值是这样一个数组:

    [users,setUsers]=useState([]);
    

    【讨论】:

    • 感谢您的回答,它有效并显示了数据,但是当我选择选项(服务器端:true)时,所有功能(过滤、搜索、分页)都不起作用是否有任何使用钩子的解决方案跨度>
    • 与本题无关
    猜你喜欢
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 2020-09-09
    • 2022-01-22
    相关资源
    最近更新 更多