Поскольку makeStyles устарел: https://mui.com/system/styles/basics/. Я пытаюсь реализовать новый подход с помощью sx prop.
У меня возникли проблемы с пониманием того, как использовать его с компонентами React-Admin.
Допустим, у меня есть список журналов, который может быть Error, Warning или Info в поле type, и я хочу раскрасить его соответствующим образом.
Я пробовал что-то вроде этого:
const LogList = ({ permissions, ...props }) => {
return (
<List
{...props}
title = "Logs"
filters = {<LogFilter />}
perPage = {25}
bulkActionButtons = {false}
>
<Datagrid rowClick = "show">
<TextField
source = "type"
label = "Type"
sx = { record.type === "Error" ? {color: "red"} : {color: "blue"}}
/>
<TextField
source = "description"
label = "Description"
/>
<DateField
source = "createdAt"
label = "Created At"
/>
</Datagrid>
</List>
);
};
Но record нельзя использовать в sx.
Любые идеи, как заставить его работать?





sx = {{color:record.type === "Error" ? "red":"blue"}}
Попробуй это
Вам нужно получить доступ к записи, например, с помощью хука useRecordContext():
import { useRecordContext, TextField } from 'react-admin'
...
const TypeField = () => {
const record = useRecordContext()
return (
<TextField
source = "type"
label = "Type"
sx = {{ color: record?.type === "Error" ? "red" : "blue" }}
/>
)
}
К сожалению, это не работает. Выдает ошибку:
record is not defined.