Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使物料表中只有一行是可编辑的?_Javascript_Reactjs_Material Ui_Material Table - Fatal编程技术网

Javascript 如何使物料表中只有一行是可编辑的?

Javascript 如何使物料表中只有一行是可编辑的?,javascript,reactjs,material-ui,material-table,Javascript,Reactjs,Material Ui,Material Table,目前我有一个使用物料表的员工表。有些员工的某些标志使背景行变为红色。这就是它看起来的样子: 我想做的是能够编辑具有红色背景的行,并且只编辑这些行。我不想把editable道具放在整个表上,因为这会占用每一行的图标空间,但我只想能够编辑带有这些特殊标志的行 这是我的代码。请注意,forgotClockOut是我使用的特殊标志 起动 ? 力矩(开始)。格式('h:mm A') :“还没有”, cellStyle:(值,{started,clockedOut})=>{ 如果(!已启动){ 返回nu

目前我有一个使用
物料表的员工表
。有些员工的某些标志使背景行变为红色。这就是它看起来的样子:

我想做的是能够编辑具有红色背景的行,并且只编辑这些行。我不想把
editable
道具放在整个表上,因为这会占用每一行的图标空间,但我只想能够编辑带有这些特殊标志的行

这是我的代码。请注意,
forgotClockOut
是我使用的特殊标志


起动
? 力矩(开始)。格式('h:mm A')
:“还没有”,
cellStyle:(值,{started,clockedOut})=>{
如果(!已启动){
返回null;
}
如果(时钟输出){
返回{color:'red'};
}
返回{color:'#06c92d'};
},
},
{title:'timeout',field:'clockedOut',render:({clockedOut})=>clockedOut?矩(clockedOut)。格式('h:mm A'):'Not yet',
{title:'Time Worked',field:'minutesWorked',render:({minutesWorked})=>`${Math.floor(minutesWorked/60)}h${minutesWorked%60}m`,
]}
选择权={{
行样式:({forgotClockOut})=>{
如果(放弃计时){
返回{backgroundColor:'#ffaaa'};
}
}
}}
onRowClick={(事件,行数据)=>{
const{forgotClockOut}=rowData;
//??在这里做什么??
}}
数据={employees}
/>

有没有办法只编辑使用
物料表制作的表格中的某些行?

您可以使用编辑属性来定义:

<MaterialTable
    editable={{
        isEditable: rowData => rowData.name === 'a', // only name(a) rows would be editable
}}/>
rowData.name=='a',//只有name(a)行是可编辑的
}}/>

您可以在文档中看到:

即使使用prop isEditable和isDeletable,也无法隐藏这两个图标。 如果要完全隐藏它们,请尝试使用

如果你需要快速解决这个问题,你可以创建一个动作,在隐藏道具的条件下显示

const actions={
  [
    rowData => ({
      icon: 'delete',
      isFreeAction: false,
      tooltip: 'Delete User',
      hidden: !rowData.deletable
      onClick:() => {...}
      })
  ]} 

你能分享你如何显示员工的代码吗?@bertdida当然!我已经把它添加到问题中了。谢谢你的回答!这是一个不错的解决方案,但我需要知道如何在单击按钮时触发行编辑状态。要使表行可编辑,应设置具有onRowAdd、onRowUpdate、onRowDelete函数的可编辑属性来操作数据。我收到错误警告:未知事件处理程序属性
onBulkEditRowChanged
。它将被忽略。有没有办法解决这个问题?