首页 > 解决方案 > 反应表格行不改变颜色。样式被传入,但返回未定义

问题描述

此处的绿色开发人员:我正在尝试有条件地更改反应表中的行颜色,并且样式已传入但返回为未定义。当我删除我的逻辑并简单地设置背景颜色:“红色”时,它通过了。但是,应用程序中的背景颜色实际上并没有改变。

   <Table
   columns={columnData}
   data={[...data]}
   divided
   getRowProps={(row) => ({
     style: {
       backgroundColor: rowColors[row.values.approval.ad?.status],
     },
   })}
 />```

我不知道为什么背景颜色不会改变。一旦可以,我可以尝试再次设置 backgroundColor: "red" 并查看它是否改变颜色。如果它有效,那么我知道我的逻辑是问题所在,可以从那里开始。

这是控制台输出:控制台输出

有什么想法吗?

标签: javascriptnode.jsreactjsjavascript-objects

解决方案


由于您的代码没有抛出异常访问row.values.approval.ad?.status,我们知道rowvalues并且approval是对象而不是未定义。这留下了ad或者status未定义。考虑到您使用的ad?.语法,您希望 ad 至少有时是未定义的。

将一个console.log(row.values.approval)or 简单地添加console.log(row)到您的渲染函数并检查缺少哪些值。您的问题很可能出在其他地方。

如果您认为错误确实出现在您显示的片段中,请尝试指定一个常量颜色,如下所示backgroundColor: "red":如果该行是红色的,你就知道我首先建议的错误。


推荐阅读