reactjs - Material 表如何选择一行在选择时更改背景颜色

标签 reactjs material-ui material-table

使用 Material 表库。 我想复制此示例中显示的行为。

https://codesandbox.io/s/table-hover-colors-zw9nt

https://www.npmjs.com/package/material-table https://material-table.com/#/ enter image description here

我正在考虑使用 onRowClick={}

逻辑是

onRowClick =>

  1. 在组件状态中设置值,将点击的行背景呈现为不同的颜色
  2. 将所有其他行设置为原始颜色的背景

我可以使用基于状态值的条件渲染来更改背景。虽然这会改变所有行的背景。

options={
   rowStyle:{backgroundColor: this.state.selected ? '#fff' : this.state.c}
}

enter image description here

我当前的工作示例在这里 https://codesandbox.io/s/peaceful-haibt-2nefw

感谢您的帮助

最佳答案

您还需要传递 selectedRowId 否则一切都是蓝色的。此外,rowStyle 选项接受一个回调,您可以像这样调用它:

rowStyle: rowData => ({
backgroundColor: this.state.selected && rowData.tableData.id === this.state.selectedRowId 
?   this.state.c
    : "#fff" 
})

您的 onRowClick 还需要一些工作(选择/取消选择条件不正确)。 https://codesandbox.io/embed/select-one-row-160vm

关于reactjs - Material 表如何选择一行在选择时更改背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58159987/

相关文章:

javascript - 如果我不在 React 功能组件中返回 JSX,如何形成错误的 TypeScript 规则/配置

reactjs - 如何在子目录中为React App配置我的.htaccess文件?

javascript - REACT React如何在回调后访问正确的 "this"

css - 无法让 justifyContent 与 flexbox 和 material ui 一起工作

reactjs - Material Table React 上的选择和远程数据分页

javascript - 如何在 Material 表中使用自定义 'editComponent'?

javascript - 在重新加载 react-native 应用程序时缓存的数据

javascript - Flatbutton(输入处理程序)似乎不起作用

reactjs - 如何更改 Mui DatePicker v5 的宽度

material-table - 如何在 React Material 表中使用千位分隔符(例如 412,335 而不是 412335)格式化数字单元格