簡體   English   中英

在 DataGrid MUI 中使用 Select 組件

[英]Using Select component in DataGrid MUI

我使用 DataGrid MUI 庫創建了一個表,並想為特定列的所有單元格添加一個選擇組件

到目前為止我做了什么

我創建了一個 Select 組件並將其傳遞給renderCell中的 renderCell

我的組件使用useState因為我希望它是可編輯的

隨后,對於每個單元格,都有一個useState ,這使得表格很重,有什么改進的想法嗎?

我的代碼

const Payment = (params) => {
    const [paymentStatus, setPaymentStatus] = useState(params.value);
    const id = params.id;

    return (
      <Select
        value={paymentStatus}
        onChange={(e) => {
          setPaymentStatus(e.target.value);
          return updateSubscription(id, e.target.value); // function to update the payment
        }}
      >
        <MenuItem value={"paid"}>Paid</MenuItem>
        <MenuItem value={"unpaid"}>Un Paid</MenuItem>
      </Select>
    );
  };
  const columns = [
...
    {
      field: "payment_status",
      headerName: "Payment Status",
      renderCell: (params) => <Payment params={params} />,
    }
  ];

我推薦使用singleSelect Column 類型

const paymentOptions = [
    { value: "paid", label: "Paid" },
    { value: "unpaid", label: "Un Paid" },
];

...
const columns = [
    ...
    {
        field: "payment_status",
        headerName: "Payment Status",
        type: 'singleSelect',
        valueOptions: paymentOptions,
        valueFormatter: ({ id, value, field }) => {
            const option = paymentOptions.find(
                ({ value: optionValue }) => optionValue === value
            );

            return option!.label;
        },
    }
];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM