首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(发现:[对象承诺])与材料UI和DexieJS

(发现:[对象承诺])与材料UI和DexieJS
EN

Stack Overflow用户
提问于 2021-08-11 09:11:56
回答 1查看 124关注 0票数 0

这是我第一次使用DexieJS和Material,所以我可能缺少一个关键的部分。但是下面是我代码的相关部分:

Subscreen.tsx

代码语言:javascript
复制
const [fightersArray, setFightersArray] = useState<FighterEntity[]>([]);

useEffect(()=>{
    loadFighters();
},[]);

const loadFighters = async ()=>{
    const fighters = await databaseManager.getFightersWithNoOrgs();
    setFightersArray(fighters);   
}

...

return (
   <DataGrid
      rows={fightersArray}
      columns={columns}
      checkboxSelection
      onSelectionModelChange={(newSelection) =>{
       setSelectedFighters(newSelection.selectionModel);
      }}
   />
)

DatabaseManager.tsx

代码语言:javascript
复制
public async getFightersWithNoOrgs() : Promise<FighterEntity[]>{
        const fighters = await this.db.fighters.filter((fighter)=> {
            return fighter.currentOrgID == null
        }).toArray();
        return fighters;
    }

这是我第一次浏览页面时遇到的错误信息

代码语言:javascript
复制
Uncaught Error: Objects are not valid as a React child (found: [object Promise]). If you meant to render a collection of children, use an array instead.

我能够将从console.log返回的数组从databaseManager中去掉,所以我知道结果是正常的,就像一个对象数组。

当我不使用承诺结构或DexieJS时,我经常使用这些代码。所以我介绍了这个变化,但我认为我的承诺结构正确,我对反应挂钩的理解也是正确的。

我也得到了一些其他的错误,但我认为他们只是级联从原来的一个。如果它们可能相关的话,很乐意提供。

EN

回答 1

Stack Overflow用户

发布于 2021-08-12 09:57:11

我发现了这个问题,而且它不存在于我上面发布的代码中。

在设置列时,我有以下代码:

代码语言:javascript
复制
    {   
        field: 'ranking', 
        headerName: 'Rank', 
        width: 100,
        renderCell : (params : GridCellParams)=>(
            <span>{getRanking(params)}</span>
        )
    },  

getRanking实际上是一个异步函数,它在这里抛出了这个问题。

愚蠢的错误在我的一端,但希望这有助于其他人!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68739149

复制
相关文章

相似问题

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