lowcode-engine
lowcode-engine copied to clipboard
手动调用table.editRow,数据行无法进入编辑态
详细描述 bug
数据表格上有一个顶部操作【创建】,点击【创建】按钮后,预期在表格的第一行插入一个空行并进入编辑态。【创建】按钮绑定的的方法:
export function onActionClickAddBizField() {
const resp = this.state.srBizFieldGetPage; // 表格数据(带pageSize的)
const data = resp.data; // 表格中的行数据
let newRow = { // 新表格的数据主键是“id”字段,因此id值设置为9999999,避免与其他已有字段重复。
id: 9999999,
}
data.unshift(newRow);
console.log(JSON.stringify(data));
// 设置数据
this.setState({
srBizFieldGetPage: {
...resp,
data: data
}
});
// 编辑态切换
this.$('tableBizField').tableRef.editRow(newRow);
}
以上代码:插入空行是可以的,但是无法进入编辑态。
问题在于:如果将id指定为2(表格中存在id为2的数据),点击【创建】按钮后,id为2的那行数据变成了编辑态,且无新增的空行,如下所示:
如何复现 bug?
参见问题的详细描述。
请提供如下信息
很奇怪的现象是,我点击2次【新增】,可以将第一行变成编辑态:
我以为是
this.$('tableBizField').tableRef.editRow(newRow);调用了2次导致的,于是乎,我改造代码如下:
export function onActionClickAddBizField() {
const resp = this.state.srBizFieldGet;
const data = resp.data;
let newRow = {
id: 999999,
name: "xx",
}
data.unshift(newRow);
// 设置数据
this.setState({
srBizFieldGetPage: {
...resp,
data: data
}
});
// 编辑态切换
this.$('tableBizField').tableRef.editRow(newRow);
this.$('tableBizField').tableRef.editRow(newRow); // 多加一行
}
但好像不管用,有大佬能解答一下么。我发现editRow返回的是一个Promise,跟这个有关系么?(我后端程序员,前端不太熟悉)