如何更改 onRowAdd、onRowUpdate、onRowDelete 的 material-table 图标的颜色?
How can I change the color of material-table icons of onRowAdd, onRowUpdate, onRowDelete?
我尝试对 material-table 库进行基本的 crud 操作。通过使用 onRowAdd
、onRowUpdate
、onRowDelete
,我得到了相同的图标,但我想知道如何更改这三个图标的颜色?
你可以看到我的 table 图标很少,我专注于添加、编辑、删除图标 我想更改这些图标的颜色。
这是我的codesandbox的link。
App.js 文件
import React, { useState } from 'react';
import './App.css';
import MaterialTable from 'material-table'
const empList = [
{ id: 1, name: "Neeraj", email: 'neeraj@gmail.com', phone: 9876543210, city: "Bangalore" },
{ id: 2, name: "Raj", email: 'raj@gmail.com', phone: 9812345678, city: "Chennai" },
{ id: 3, name: "David", email: 'david342@gmail.com', phone: 7896536289, city: "Jaipur" },
{ id: 4, name: "Vikas", email: 'vikas75@gmail.com', phone: 9087654321, city: "Hyderabad" },
]
function App() {
const [data, setData] = useState(empList)
const columns = [
{ title: "ID", field: "id", editable: false },
{ title: "Name", field: "name" },
{ title: "Email", field: "email" },
{ title: "Phone Number", field: 'phone', },
{ title: "City", field: "city", }
]
return (
<div className="App">
<h1 align="center">React-App</h1>
<h4 align='center'>Material Table with CRUD operation</h4>
<MaterialTable
title="Employee Data"
data={data}
columns={columns}
editable={{
onRowAdd: (newRow) => new Promise((resolve, reject) => {
const updatedRows = [...data, { id: Math.floor(Math.random() * 100), ...newRow }]
setTimeout(() => {
setData(updatedRows)
resolve()
}, 2000)
}),
onRowDelete: selectedRow => new Promise((resolve, reject) => {
const index = selectedRow.tableData.id;
const updatedRows = [...data]
updatedRows.splice(index, 1)
setTimeout(() => {
setData(updatedRows)
resolve()
}, 2000)
}),
onRowUpdate:(updatedRow,oldRow)=>new Promise((resolve,reject)=>{
const index=oldRow.tableData.id;
const updatedRows=[...data]
updatedRows[index]=updatedRow
setTimeout(() => {
setData(updatedRows)
resolve()
}, 2000)
})
}}
options={{
actionsColumnIndex: -1, addRowPosition: "first"
}}
/>
</div>
);
}
export default App;
很简单。检查页面和 Select 图标并在样式选项卡中复制其样式名称。
现在,转到 App.css 文件并使用检查样式区域中显示的图标样式名称创建新样式,然后您可以在其中输入所需的颜色。
它会起作用。
在您的 App.css 文件中,
添加以下代码
.MuiIconButton-colorInherit {
color: red;
}
更改为任何颜色
您可以通过设置 icons
道具来覆盖图标并提供自定义样式。它接受一个对象,其中键是一种操作类型(Add
、Edit
、Delete
、...),值是一个图标组件。作为参考,请参阅所有道具部分 here。
<MaterialTable
{...props}
icons={{
Edit: () => <EditIcon style={{ color: "orange" }} />,
Delete: () => <DeleteIcon style={{ color: "red" }} />
}}
>
现场演示
我尝试对 material-table 库进行基本的 crud 操作。通过使用 onRowAdd
、onRowUpdate
、onRowDelete
,我得到了相同的图标,但我想知道如何更改这三个图标的颜色?
你可以看到我的 table 图标很少,我专注于添加、编辑、删除图标 我想更改这些图标的颜色。
这是我的codesandbox的link。
App.js 文件
import React, { useState } from 'react';
import './App.css';
import MaterialTable from 'material-table'
const empList = [
{ id: 1, name: "Neeraj", email: 'neeraj@gmail.com', phone: 9876543210, city: "Bangalore" },
{ id: 2, name: "Raj", email: 'raj@gmail.com', phone: 9812345678, city: "Chennai" },
{ id: 3, name: "David", email: 'david342@gmail.com', phone: 7896536289, city: "Jaipur" },
{ id: 4, name: "Vikas", email: 'vikas75@gmail.com', phone: 9087654321, city: "Hyderabad" },
]
function App() {
const [data, setData] = useState(empList)
const columns = [
{ title: "ID", field: "id", editable: false },
{ title: "Name", field: "name" },
{ title: "Email", field: "email" },
{ title: "Phone Number", field: 'phone', },
{ title: "City", field: "city", }
]
return (
<div className="App">
<h1 align="center">React-App</h1>
<h4 align='center'>Material Table with CRUD operation</h4>
<MaterialTable
title="Employee Data"
data={data}
columns={columns}
editable={{
onRowAdd: (newRow) => new Promise((resolve, reject) => {
const updatedRows = [...data, { id: Math.floor(Math.random() * 100), ...newRow }]
setTimeout(() => {
setData(updatedRows)
resolve()
}, 2000)
}),
onRowDelete: selectedRow => new Promise((resolve, reject) => {
const index = selectedRow.tableData.id;
const updatedRows = [...data]
updatedRows.splice(index, 1)
setTimeout(() => {
setData(updatedRows)
resolve()
}, 2000)
}),
onRowUpdate:(updatedRow,oldRow)=>new Promise((resolve,reject)=>{
const index=oldRow.tableData.id;
const updatedRows=[...data]
updatedRows[index]=updatedRow
setTimeout(() => {
setData(updatedRows)
resolve()
}, 2000)
})
}}
options={{
actionsColumnIndex: -1, addRowPosition: "first"
}}
/>
</div>
);
}
export default App;
很简单。检查页面和 Select 图标并在样式选项卡中复制其样式名称。
现在,转到 App.css 文件并使用检查样式区域中显示的图标样式名称创建新样式,然后您可以在其中输入所需的颜色。
它会起作用。
在您的 App.css 文件中, 添加以下代码
.MuiIconButton-colorInherit {
color: red;
}
更改为任何颜色
您可以通过设置 icons
道具来覆盖图标并提供自定义样式。它接受一个对象,其中键是一种操作类型(Add
、Edit
、Delete
、...),值是一个图标组件。作为参考,请参阅所有道具部分 here。
<MaterialTable
{...props}
icons={{
Edit: () => <EditIcon style={{ color: "orange" }} />,
Delete: () => <DeleteIcon style={{ color: "red" }} />
}}
>