当前位置: 首页 > 面试题库 >

在点击反应表上选择行

夔博
2023-03-14
问题内容

我正在尝试找到最适合与我的React应用程序一起使用的表,而现在,react表提供了我需要的一切(分页,服务器端控件,过滤,排序,页脚行)。

话虽这么说,我似乎无法选择一行。没有任何例子可以证明这一点。

我尝试过的一些操作包括尝试在单击行时设置className。但是我似乎在enor中找不到调用元素t。另外,我不喜欢这种方法,因为这不是React应用程序应该做的事情。

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

一些可能的解决方法是将复选框呈现为第一列,但这并不是最佳选择,因为它限制了单击以“激活”行的区域。同样,视觉反馈将缺乏表现力。

我想念房间里的大象吗?如果不是,您是否知道另一个支持我前面介绍的内容的库?

谢谢!

编辑: 这是开源的另一种选择是建议进行编辑。也许这是正确的做法。

编辑2

DavorinRuševljan在评论中建议的另一件事是,但我无法使其工作:

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'
                    }
                }
            }}

这会将“名字”列设置为“选定”,但不会将类设置为“绿色”


问题答案:

经过几次尝试,我找到了解决方案,希望对您有所帮助。将以下内容添加到您的<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 }


 类似资料:
  • 问题内容: 我在从React中的表行调用click事件时遇到麻烦。下面是我的代码。我有一个单独的函数来单独填充行,但似乎我弄乱了绑定信息。 } 问题答案: 首先,您要传递一个评估函数调用到您的属性。 单独查看以下代码: 您期望的输出为“ hello bob”。 如果我将其传递给prop,则完全相同。例如: 在这种情况下,我只是将字符串传递给按钮的prop。的(和其他事件的道具)希望被提供的功能(或

  • 我想在react中处理选择的事件,示例如何在普通JS中工作。 因此我为选择创建了react组件:

  • elmentui的表格多选在移动端要双击才能选择上,不知道有没有大佬遇到过这个问题

  • 我在我的页面上有一组选项卡,当点击时,将活动选项卡切换到点击选项卡的值。这工作得很顺利,但是当我看到新的活动标签周围有一个蓝色的大焦点框时,我嘴里留下了一股酸味。有没有一种React-y方法来防止这种情况? 带有preventDefault()的onMouseDown={this.someMethod}是否可以工作?

  • 问题内容: 我在JTable实例上选择行时遇到问题。 这就是我想要的: 我想在行中有两个相等的表,并且它们的数据相同。当您在第一张表上选择一行时,例如第三行,我也希望第二张表上的第三行被自动选择。我通过在JTable中添加一个更新了仅包含所选值的类的方法解决了这一问题。然后,该类使用从第一个中选择的值来触发另一个JTable。 我的问题是: 用户对表之一进行排序时,会发生我的问题。然后,视图发生改

  • 我正在创建一个react js应用程序,并使用HTML选择下拉列表。我想重点关注页面加载时的选择。下面显示了我在select中使用的代码。 我也使用下面提到一些StackOverflow解决方案,但没有工作。 或