如何从 BluePrint.js 表中的 EditableCell 获取 isEditing 状态? 本质上是获取子组件的状态

问题描述

用户场景:在可编辑表格中,当用户选择一个单元格并点击删除时,该单元格中的所有内容都将被删除;当用户编辑单元格时(在编辑器模式下),删除/退格键将删除一个字符。因此,我需要区分是否正在编辑单元格。

有没有办法将可编辑单元格的编辑状态提取一个变量中?

我看到了 onEdit? (值:字符串 | 未定义):IEditableTextProps 中的 void 道具,可从 EditableCell 道具中获得。但是无法调用回调。有没有其他方法可以解决这个问题?

这是库中EditableCell组件的源代码https://github.com/palantir/blueprint/blob/develop/packages/table/src/cell/editableCell.tsx

        <EditableCell
          tabIndex={-1}
          className={classnames(classes.tableCell)}
          value={value}
          onChange={(row,col,data,value => onDataChange(row,value))}
          onConfirm={(row,value))}
          onKeyDown={e => {
            !isEditing &&  if ((e.which === 46) | (e.which === 8)) {
               // delete key or backspace
               onDataChange(row,'')
             }
            if ((e.ctrlKey || e.MetaKey) && !e.shiftKey) {
              if (e.which === 88) {
                // ctrl + x
                handleCut(row,col)
              }
              if (e.which === 86) {
                // ctrl + v
                onDataChange(row,clipboardValue)
              }
            }
          }}
          editableTextProps={{onEdit: (value) => console.log("editing")}}
        />
      )
    }```


解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)