首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >填充材料-由于找不到唯一ID,来自MongoDB的UI DataGrid失败

填充材料-由于找不到唯一ID,来自MongoDB的UI DataGrid失败
EN

Stack Overflow用户
提问于 2020-10-15 23:39:17
回答 5查看 11.5K关注 0票数 13

错误: Material-UI:数据网格组件要求所有行都具有唯一的id属性。当我调用该表时,我看到的是在行中没有prop的情况下提供的行。

下面是我如何定义该表的方法。

代码语言:javascript
复制
const columns = [
  { field: "_id", hide: true },
  { field: "user", headerName: "User", width: 70 },
  { field: "fromaddress", headerName: "Sender", width: 70 },
  { field: "dkimSpfChk", headerName: "DKIM/SPF", width: 70 },
  { field: "replySenderMismatch", headerName: "Reply MisMatch", width: 70 },
  { field: "riskywordchk", headerName: "Risky Word", width: 70 },
  { field: "domainagechk", headerName: "Sender Domain Age", width: 70 },
  { field: "attachmentChk", headerName: "Attachments", width: 70 },
  { field: "riskyLinkAge", headerName: "Body Link Age", width: 70 },
  { field: "riskyLinkTypo", headerName: "Link Typosquatting", width: 70 },
  {
    field: "senderTypoSquatting",
    headerName: "Sender TypoSquatting",
    width: 70,
  }
];

我从api获取数据,然后填充到行中

代码语言:javascript
复制
useEffect(() => {
    var apiurl = "http://localhost:5000/adminportal/highRiskEmails";
    axios
      .get(apiurl)
      .then((response) => response.data)
      .then((data) => {
        setIsLoaded(true);
        setRowData(data);
      });
  }, []);

下面是数据网格

代码语言:javascript
复制
return (
  
    
  
);

我知道_id字段在Mongo中是唯一的,所以我想知道我遗漏了什么。我是否必须定义id字段不是id,而是_身份证?

谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2021-02-26 05:10:49

您现在可以使用getRowId属性,该属性接受指定应将每行上的哪个属性视为id的函数。

在OP的情况下,您可以这样做:getRowId={(row) => row._id}

参考资料:https://github.com/mui-org/material-ui-x/pull/972

票数 29
EN

Stack Overflow用户

发布于 2021-02-19 23:40:23

我只是把这个选项{虚拟: true }在我的方案中:

代码语言:javascript
复制
const opts = { toJSON: { virtuals: true } };

const schema = new mongoose.Schema({
    lastName: String,
    firstName: String,
    nickname: String,
}, opts);

因此,当我尝试查询时,该字段"id“已添加。类似于:{“_id":"602fc7aba323ec87f00f9c76","lastName":“坦格利安”,"firstName":“丹妮莉丝”,“昵称”:"",“__v":0,"id":"602fc7aba323ec87f00f9c76“}

票数 3
EN

Stack Overflow用户

发布于 2020-12-01 00:31:09

我也很难做到这一点,原来你可以做虚拟身份证https://mongoosejs.com/docs/tutorials/virtuals.html

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

https://stackoverflow.com/questions/64375119

复制
相关文章

相似问题

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