#reactjs #material-ui
Вопрос:
Я использую таблицу пользовательского интерфейса material, но, к сожалению, ее цвет шрифта белый, поэтому я не могу видеть текст, но при выборе текста я вижу данные, и также есть проблема со значками, хотя я хорошо установил библиотеки. Ниже приведен код:
import React,{useState,useEffect} from 'react';
import MaterialTable from 'material-table';
import '@material-ui/core';
import '@material-ui/icons';
import '@material-ui/lab';
export default function AdminXnaLog() {
const [data, setData] = useState([]); //table data
const [iserror, setIserror] = useState(false)
const [errorMessages, setErrorMessages] = useState([])
var columns = [
{title: "id", field: "_id", hidden: true},
{title: "Member No", field: "memberno"},
{title: "Name", field: "name"},
{title: "Surname", field: "surname"}
]
useEffect(() => {
async function fetchBooks() {
const response = await fetch('/xnalogget');
const json = await response.json();
setData(json.xl);
console.log(json.xl)
}
fetchBooks();
},[]);
return (
<MaterialTable
title="XNA Logs"
columns={columns}
data={data}
style={{ backgroundColor: "white", margin: "3%" }} // editable={{
/>
)
}
Это изображение, на котором цвет шрифта и значки не работают.
Комментарии:
1. Пожалуйста, проверьте страницу материалов , чтобы узнать, как включить определенный значок из библиотеки значков материалов.
2. Где вы ожидаете появления значков?
Ответ №1:
Непонятно, где вы хотите использовать значки? Вы вообще не используете поддержку значков ( icons=
переданную в компонент) для MaterialTable.
Из документации:
import { forwardRef } from 'react';
import AddBox from '@material-ui/icons/AddBox';
import ArrowDownward from '@material-ui/icons/ArrowDownward';
import Check from '@material-ui/icons/Check';
import ChevronLeft from '@material-ui/icons/ChevronLeft';
import ChevronRight from '@material-ui/icons/ChevronRight';
import Clear from '@material-ui/icons/Clear';
import DeleteOutline from '@material-ui/icons/DeleteOutline';
import Edit from '@material-ui/icons/Edit';
import FilterList from '@material-ui/icons/FilterList';
import FirstPage from '@material-ui/icons/FirstPage';
import LastPage from '@material-ui/icons/LastPage';
import Remove from '@material-ui/icons/Remove';
import SaveAlt from '@material-ui/icons/SaveAlt';
import Search from '@material-ui/icons/Search';
import ViewColumn from '@material-ui/icons/ViewColumn';
const tableIcons = {
Add: forwardRef((props, ref) => <AddBox {...props} ref={ref} />),
Check: forwardRef((props, ref) => <Check {...props} ref={ref} />),
Clear: forwardRef((props, ref) => <Clear {...props} ref={ref} />),
Delete: forwardRef((props, ref) => <DeleteOutline {...props} ref={ref} />),
DetailPanel: forwardRef((props, ref) => <ChevronRight {...props} ref={ref} />),
Edit: forwardRef((props, ref) => <Edit {...props} ref={ref} />),
Export: forwardRef((props, ref) => <SaveAlt {...props} ref={ref} />),
Filter: forwardRef((props, ref) => <FilterList {...props} ref={ref} />),
FirstPage: forwardRef((props, ref) => <FirstPage {...props} ref={ref} />),
LastPage: forwardRef((props, ref) => <LastPage {...props} ref={ref} />),
NextPage: forwardRef((props, ref) => <ChevronRight {...props} ref={ref} />),
PreviousPage: forwardRef((props, ref) => <ChevronLeft {...props} ref={ref} />),
ResetSearch: forwardRef((props, ref) => <Clear {...props} ref={ref} />),
Search: forwardRef((props, ref) => <Search {...props} ref={ref} />),
SortArrow: forwardRef((props, ref) => <ArrowDownward {...props} ref={ref} />),
ThirdStateCheck: forwardRef((props, ref) => <Remove {...props} ref={ref} />),
ViewColumn: forwardRef((props, ref) => <ViewColumn {...props} ref={ref} />)
};
<MaterialTable
icons={tableIcons}
...
/>
https://material-table.com/#/docs/install
И вы можете использовать их по имени внутри таблицы, например, с помощью действия:
<MaterialTable
// other props
actions={[
{
icon: 'save',
tooltip: 'Save User',
onClick: (event, rowData) => {
// Do save operation
}
}
]}
/>
где icon
-строковое значение, ссылающееся на значок.
Вы также можете добавить еще один компонент, как в этом ответе: https://material-table.com/#/docs/features/actions
Комментарии:
1. и почему цвет шрифта белый? поскольку цвет фона также белый, данные не видны. Каковы способы, с помощью которых мы можем настроить стиль таблицы . Как стиль={{}} (встроенный стиль) здесь не работает/ не влияет на данные строк.
2.Я не уверен, по умолчанию он кажется черным, возможно, унаследованным из других частей вашего проекта? Вы можете установить его в реквизите «Параметры», предполагая, что они сделали поле доступным для вас (вы можете сделать это вручную, если они этого не сделали, но в этом случае вы можете легко изменить цвет текста). См.: material-table.com/#/docs/features/styling
options={{ headerStyle: { backgroundColor: '#01579b', color: '#FFF' } }}
изменяет заголовок3. Каков для этого ручной метод? или как использовать эту опору опций
4. хорошо, хорошо, спасибо, я понял