首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在表单元格中使用tippyjs-react

在表单元格中使用tippyjs-react
EN

Stack Overflow用户
提问于 2021-01-15 00:21:42
回答 1查看 209关注 0票数 1

我正尝试在表单元格中使用tippyjs-react,但没有显示工具提示。

我在React TableCell选项中添加了工具提示

代码语言:javascript
复制
Cell: ({ value }) => {
    return (
      <div>
        <Tippy content="Tooltip content">
          <span>{value}</span>
        </Tippy>
      </div>
    );
  }

codesandbox

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-17 04:57:52

问题是,在Table组件中,您更改了columns以呈现工具提示,但您是在useTable调用之后执行此操作的。

因此,一个简单的解决方法是将此逻辑放在useTable调用之前:

代码语言:javascript
复制
function Table({ columns, data }) {
  for (let i = 0; i < columns.length; i++) {
    columns[i].columns = columns[i].columns.map((column) => ({
      ...column,
      Cell: ({ value }) => {
        return (
          <div>
            <Tippy content="Tooltip content">
              <span>{value}</span>
            </Tippy>
          </div>
        );
      },
    }));
  }

  const {
    getTableProps,
    getTableBodyProps,
    headerGroups,
    rows,
    prepareRow,
  } = useTable({
    columns,
    data,
  });

  return (
    <table {...getTableProps()}>
      <thead>
        {headerGroups.map((headerGroup) => (
          <tr {...headerGroup.getHeaderGroupProps()}>
            {headerGroup.headers.map((column) => (
              <th {...column.getHeaderProps()}>{column.render("Header")}</th>
            ))}
          </tr>
        ))}
      </thead>
      <tbody {...getTableBodyProps()}>
        {rows.map((row, i) => {
          prepareRow(row);
          return (
            <tr {...row.getRowProps()}>
              {row.cells.map((cell) => {
                return <td {...cell.getCellProps()}>{cell.render("Cell")}</td>;
              })}
            </tr>
          );
        })}
      </tbody>
    </table>
  );
}

sandbox example

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65722776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档