gpt4 book ai didi

javascript - material-table 使行在单击时可编辑

转载 作者:行者123 更新时间:2023-12-05 02:06:50 24 4
gpt4 key购买 nike

使用 material-table库,我试图使表格行在双击时可编辑。单击该行应与单击操作列中最左侧的编辑按钮具有相同的效果。我已成功链接到正确的事件处理程序,现在双击一行时出现警告框。

https://codesandbox.io/s/lucid-microservice-73iq8?file=/src/App.js:0-1203

import React from "react";
import MaterialTable, { MTableBodyRow } from "material-table";

export default function App() {
return (
<MaterialTable
columns={[
{ title: "Adı", field: "name" },
{ title: "Soyadı", field: "surname" },
{ title: "Doğum Yılı", field: "birthYear", type: "numeric" },
{
title: "Doğum Yeri",
field: "birthCity",
lookup: { 34: "İstanbul", 63: "Şanlıurfa" }
}
]}
components={{
Row: props => (
<MTableBodyRow
{...props}
onDoubleClick={() => {
alert("Make row editable");
}}
/>
)
}}
editable={{
onRowAdd: newData =>
new Promise((resolve, reject) => {
resolve();
}),
onRowUpdate: (newData, oldData) =>
new Promise((resolve, reject) => {
resolve();
}),
onRowDelete: oldData =>
new Promise((resolve, reject) => {
resolve();
})
}}
data={[
{ name: "Mehmet", surname: "Baran", birthYear: 1987, birthCity: 63 }
]}
title="Demo Title"
/>
);
}

最佳答案

这是一个纯粹的hack,没有你可以触发的事件,

所以我只是深入挖掘核心object来找到事件触发器,我在props.actions中找到了它

props.actions 包含actions 数组,例如addeditdelete,因此通过获取它的引用,您可以从中触发任何事件。

这是它的代码片段,看看:

<MTableBodyRow
{...props}
onDoubleClick={(e) => {
console.log(props.actions) // <---- HERE : Get all the actions
props.actions[1]().onClick(e,props.data); // <---- trigger edit event
alert("Make row editable");
}}
/>

工作演示:

Edit #SO-material-onclick-edit

关于javascript - material-table 使行在单击时可编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62316709/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com