我正在努力寻找与react应用程序配合使用的最佳表格,目前,react-table提供了我所需的一切(分页、服务器端控制、筛选、排序、页脚行).

尽管如此,我似乎无法 Select 一行.没有examples个能显示这一点.

我try 过的一些事情包括在单击行时设置类名.但我似乎在et中找不到召唤元素.此外,我不喜欢这种方法,因为它不是react应用程序应该做的事情.

<ReactTable
            ...
            getTrProps={(state, rowInfo, column, instance) => {
                return {
                    onClick: (e, t) => {
                        t.srcElement.classList.add('active')
                    },
                    style: {
                    }
                }
            }}
        />

一些可能的解决方法是将复选框呈现为第一列,但这并不是最佳做法,因为它限制了单击区域以"激活"行.此外,视觉反馈的表现力也会降低.

我错过房间里的大象了吗?如果没有,你知道另一个支持我前面描述的东西的库吗?

非常感谢.

EDIT:

EDIT 2

Davorin Ruševljan在 comments 中提出了另一件事,但我无法让它起作用:

onRowClick(e, t, rowInfo) {
    this.setState((oldState) => {
        let data = oldState.data.slice();
        let copy = Object.assign({},  data[rowInfo.index]);

        copy.selected = true;
        copy.FirstName = "selected";
        data[rowInfo.index] = copy;

        return {
            data: data,
        }
    })
}

....

            getTrProps={(state, rowInfo, column) => {
                return {
                    onClick: (e, t) => { this.onRowClick(e, t, rowInfo) },
                    style: {
                        background: rowInfo && rowInfo.row.selected ? 'green' : 'red'
                    }
                }
            }}

这会将"FirstName"列设置为"selected",但不会将类设置为"green"

推荐答案

经过几次try ,我找到了解决方案,希望这能对您有所帮助.将以下内容添加到<ReactTable>组件中:

getTrProps={(state, rowInfo) => {
  if (rowInfo && rowInfo.row) {
    return {
      onClick: (e) => {
        this.setState({
          selected: rowInfo.index
        })
      },
      style: {
        background: rowInfo.index === this.state.selected ? '#00afec' : 'white',
        color: rowInfo.index === this.state.selected ? 'white' : 'black'
      }
    }
  }else{
    return {}
  }
}

state中,不要忘记添加空selected值,例如:

state = { selected: null }

Reactjs相关问答推荐

在Redux工具包查询中,是否可以将标记应用到API切片内的所有端点?

安装后未渲染tailwind

有没有办法将MUI网格元素与Flex-Start对齐?

使用下一步中的路由/导航不会立即加载路由

在Reaction中管理多个状态

如何使用useState响应快速/顺序状态更新

为什么我得不到我想要的数据?

useEffect不重新渲染

验证 Yup 中的对象项

如何将 npm 包添加到我的 Vite + React 应用程序中?

在react的useEffect钩子中,我的函数被调用,但只有第一个函数能够改变状态,第二个函数无法改变状态.

Material UI @mui/material/Button vs @material-ui/core/Button,它什么时候改变的,旧版本的文档在哪里

当我使用 Firebase Auth 在 React 中刷新主页时显示登录页面

如何读取 null 的属性?

为什么刷新页面时我的localStorage PET值变成空字符串?

react - 警告:列表中的每个子元素都应该有一个独特的 keys props ,即使我已经设置了 keys

如何在同一路由路径上重新渲染组件(链接,V6)reactjs

如何将我的 ID 值传递给下一个组件?

为什么我在此代码段中看不到 useEffect for count = 1?

React - useParams() 不会失败 null / undefined 判断