【问题标题】:如何在 React mui-Datatable 中完成 customRender
【发布时间】:2019-10-11 19:29:22
【问题描述】:

我想自定义 mui-datatble 中的行帽数据,如果我在选项中选择是,背景颜色应该是红色,如果我说否,背景颜色应该是蓝色。我第一次使用mui-datatable。

我无法使用 customRowRender 或 customRender。我们如何在 mui-datatable 中使用它

import React from 'react';
import MUIDataTable from "mui-datatables";

class Datatable extends React.Component {
    render() {
        const columns = [
            {
             name: "name",
             label: "Name",
             options: {
              filter: true,
              sort: true,
              customRowRender:(data, dataIndex, rowIndex) => {
                console.log('data' + data);
                return (
                  <div>
                    {data}{' '}{dataIndex}{' '}{rowIndex}
                  </div>
                );
              }
             }
            },
            {
             name: "company",
             label: "Company",
             options: {
              filter: true,
              sort: false,
             }
            }
           ];

           const data = [
            { name: "Joe James", company: "Test Corp" },
            { name: "John Walsh", company: "Test Corp" }
           ];

           const options = {
             filterType: 'checkbox',
           };
        return (
            <React.Fragment>
<MUIDataTable
  title={"Employee List"}
  data={data}
  columns={columns}
  options={options}
/>
            </React.Fragment>
            );
   }}
export default Datatable;

I should be able to render data in customRender where I will add a conditional render with a <div> and style depending on Yes/No

【问题讨论】:

    标签: reactjs datatable mui-datatable


    【解决方案1】:

    您已将customRowRender 属性放在columns 对象中,根据doc 它应该在options 对象中:

       const options = {
                 filterType: 'checkbox',
                 customRowRender:(data, dataIndex, rowIndex) => {
                    console.log('data' + data);
                    return (
                      <div>
                        {data}{' '}{dataIndex}{' '}{rowIndex}
                      </div>
                    );
                  }
        };
    
        // render
        <MUIDataTable
          title={"Employee List"}
          data={data}
          columns={columns}
          options={options}
        />
    

    但这是用于渲染自定义行,如果要渲染自定义列,则可以在columns 对象中使用customBodyRender 属性。

    【讨论】:

    • 所以,我只想自定义一个特定列中的单元格,其中如果我得到一个是,bgColor 将是红色,如果它是一个否,Bgcolor 将是蓝色。我能做到的最好方法是什么。
    • 对此我不确定,也许您可​​以使用selectableRows 选项来设置复选框并使用onRowsSelect 回调来更改选定行的样式。
    猜你喜欢
    • 2020-11-14
    • 2021-09-25
    • 2022-10-05
    • 2021-11-22
    • 2022-11-30
    • 2019-03-15
    • 2022-01-25
    • 2021-10-23
    相关资源
    最近更新 更多