首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react-table在useTable钩子之前检查数据存在

react-table在useTable钩子之前检查数据存在
EN

Stack Overflow用户
提问于 2020-04-17 15:57:47
回答 1查看 1.7K关注 0票数 1

我对react-table是个新手,实际上我正试着把糟糕的react-bootstrap-table2重写成react-table。

我使用axios获取数据,然后在我的反应表组件中检索,然后在useTable钩子中使用useSelect.Then,但是

代码语言:javascript
复制
import React from "react";
import {useSelector} from "react-redux";
import {useTable} from "react-table";

function Table() {

let testsData = useSelector(state => 
state.fetchTestsData.testsData);
console.log("testData to show in table ", testsData);
testsData = !(testsData === null || testsData.length === 0) ?  [];


const columns = React.useMemo(
    () => [
        {
            Header: '1',
            accessor: '1column',
        },
        {
            Header: '2',
            accessor: '2column',
        },
    ],
    []
);

const {
    getTableProps,
    getTableBodyProps,
    headerGroups,
    rows,
    prepareRow,
} = useTable({columns, testsData});


const {
    getTableProps,
    getTableBodyProps,
    headerGroups,
    rows,
    prepareRow,
} = useTable({columns, testsData});

有一段时间,没有数据。我不能将useTable放在if条件下,因为它是钩子。如何检查我的数据是否存在?react-table给我TypeError:无法读取未定义的属性'forEach‘

附言:我更新了上面的代码片段。它仍然会给我一个错误。

即使我声明testsData = [];并将其传递给useTable-它也会给出一个错误

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-11 09:37:07

我刚刚遇到了同样的问题,试图将数据与状态一起存储。查看控制台日志错误,我注意到未定义的错误是指插件中一个名为data的变量。

由于您将变量名更改为testsData,因此插件无法找到它要查找的内容。我意识到我需要在一个页面上使用多个表,因此仅使用data不能满足我的要求。在研究API (https://github.com/tannerlinsley/react-table/blob/master/docs/api/useTable.md)时,我发现您可以传入数据的关键data,但您需要在同一行上将该值设置为您的testsData变量,这应该会消除您的错误:

代码语言:javascript
复制
const {
    getTableProps,
    getTableBodyProps,
    headerGroups,
    rows,
    prepareRow,
} = useTable({columns, data: testsData});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61266703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档