您好,我不知道如何在右侧图片上获得结果.使用react table可以吗??如果是,我该怎么做?

export default function MenuDisplay() {
  const { menuId } = useParams();
  const { match } = JsonData;

  const [hideSelected, setHideSelected] = useState(false);
  const [selected, setSelected] = useState({});

  const rowSelectHandler = (id) => (checked) => {
    setSelected((selected) => ({
      ...selected,
      [id]: checked
    }));
  };

  const toggleShow = () => setHideSelected((hide) => !hide);

  const matchData = (
    match.find((el) => el._id_menu === menuId)?._ids ?? []
  ).filter(({ _id }) => {
    if (hideSelected) {
      return !selected[_id];
    }
    return true;
  });

  const getRowProps = (row) => {
    return {
      style: {
        backgroundColor: selected[row.values.id] ? "lightgrey" : "white"
      }
    };
  };

  const data = [
    {
      Header: "id",
      accessor: (row) => row._id
    },
    {
      Header: "Name",
      accessor: (row) => (
        <Link to={{ pathname: `/menu/${menuId}/${row._id}` }}>{row.name}</Link>
      )
    },
    {
      Header: "Comments",
      //check current row is in hidden rows or not
      accessor: (row) => row.comments
    },
    {
      Header: "Dishes",
      //check current row is in hidden rows or not
      accessor: (row) => row.dishes,
      id: "dishes",
      Cell: ({ value }) => value && Object.values(value[0]).join(", ")
    },
    {
      Header: "Show",
      accessor: (row) => (
        <Toggle
          value={selected[row._id]}
          onChange={rowSelectHandler(row._id)}
        />
      )
    }
  ];

  const initialState = {
    sortBy: [
      { desc: false, id: "id" },
      { desc: false, id: "description" }
    ],
    hiddenColumns: ["dishes", "id"]
  };

  return (
    <div>
      <button type="button" onClick={toggleShow}>
        {hideSelected ? "Cancel" : "Apply"}
      </button>

      <Table
        data={matchData}
        columns={data}
        initialState={initialState}
        withCellBorder
        withRowBorder
        withSorting
        withPagination
        rowProps={getRowProps}
      />
    </div>
  );
}

这是我的code

Here is the picture :[

推荐答案

定义采用计数值的计数器组件(&a);在flex容器div上生成$count个div....可以微调子div的宽度、高度和边界半径,使其成为所需大小的圆形;背景 colored颜色 设置适当.

我将您的Sandbox Forking ,并为您制作了一个示例实现here

希望这有帮助.

Reactjs相关问答推荐

我无法对NextJ中的动态元素应用内部/内联风格

使用useEffect挂钩获取数据

Firebase删除UserWithEmail AndPassword仅创建匿名用户

在Reaction中单击时,按钮未按预期工作

每次单击按钮时,Reaction组件都会重新生成

当列表中的项的顺序改变并且使用唯一键作为它们的索引时,Reaction如何看待呈现方面?

这两个子元素在Reaction Native中使用的有什么不同?

useEffect不重新渲染

关于forwardRef,我可以';我不理解第二个用例

滚动视图样式高度没有任何区别

如何更改TimePicker中下拉菜单的背景 colored颜色 和字体 colored颜色 - MUI React

使用 toast 时挂钩调用无效

如何使用 redux 和 react-plotly.js

Formik onChange() 字段挂钩覆盖显示值和 Select 机制

Next.js i18n 路由不适用于动态路由

状态链接未传递到路由页面

如何通过 id 从 useSprings 数组中删除元素

React - 仅在变量为真时显示项目

如何通过 Material ui select 使下拉菜单下拉

react-admin useGetIdentity 只返回全名,id 未定义 头像未定义