当从react-datatable-component内部使用时,材料UI选择抛出event.target.getAttribute不是一个函数

maria_k

我正在使用react-datatable-component(https://www.npmjs.com/package/react-data-table-component)并具有自定义单元格,因为我希望某些字段可编辑。

但是,我在材质UI中使用“选择”字段时遇到问题,因为当触发“ onChange”事件时,它返回“ event.target.value”不是一个函数。

我创建了以下沙箱https://codesandbox.io/s/jolly-williams-3hiyj?file=/src/App.js:50-100,在这里您可以在选择选项后看到问题。

任何想法将不胜感激。

谢谢

贝蒂达

看来您的问题是由react-data-table-component的这一引起TableRow.js,它e.target.getAttribute('data-tag')在单击行时会尝试执行

但是,当您onClick在材质用户界面FormControlSelect组件附加一个时console.logevent.target您将得到

{ value: 3, name: undefined }

event.target不是一个HTML元素,而只是一个object带有属性valuename因此,当react-data-table-component执行时,e.target.getAttribute('data-tag')它会崩溃。


可能的解决方案

onClick处理程序附加到material-uiFormControlSelect并停止event的传播

<FormControl onClick={(e) => e.stopPropagation()} >
...

另请注意,执行此操作(下面的代码)不会更改所选的值。您必须为“选择”列创建一个组件,然后将选定的值添加到state我将这些修复程序添加到了可以在下面找到的codeandbox中。

...
onChange={(event) => {
  row.pressTypeCode = event.target.value;
}}

编辑令人兴奋的霍金7pj6o

PS:react-data-table-component具有ignoreRowClick列,但是我不确定为什么它不适用于我们的代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章