Mutator 在更新时运行但单元格数据未更改
Mutator runs on update but cell data unchanged
我想创建一个新字段 reservationAction
并将其作为列 Reservation
放入我的 table 中,定义为:
{title: "Reservation", field: "reservationAction", mutator: reservationMutator},
与 reservationMutator
为:
var reservationMutator = function(value, data, type, params, component) {
console.log(data);
if (!data.checkoutable) return null;
if (data.is_reserved) {
return "Free";
}
return "Get";
}
is_reserved
和 checkoutable
是我的数据中预先存在的字段。
当页面最初加载时,table 是使用 ajax
创建的,单元格显示 Reservation
的正确字符串。当 is_reserved
在服务器端更改时,我调用 table.updateOrAddData([newData])
(作为 websocket 事件处理程序的一部分)。
问题:
当 table.updateOrAddData([newData])
运行 时,我可以看到自定义突变器被触发
从 console.log()
行中,可以看到 reservationAction
已在日志中正确设置。 但 table 本身显示旧值。 其他(非变异)列按预期在 table 上更新。我是不是遗漏了什么或者这是一个错误?
如果我改为使用 table.replaceData()
,那么控制台和 table 都会显示正确的值。但出于性能原因,我想避免在每个 websocket 事件上都这样做。
版本:5+我都试过了
如有任何帮助,我们将不胜感激!
不知道这是否是一种解决方法,或者我实际上应该如何首先做到这一点,但是 row.reformat()
似乎达到了我的预期。嗯。
table.updateOrAddData([row_obj])
.then(function(rows){
rows.forEach(row => {
row.reformat();
});
});
我想创建一个新字段 reservationAction
并将其作为列 Reservation
放入我的 table 中,定义为:
{title: "Reservation", field: "reservationAction", mutator: reservationMutator},
与 reservationMutator
为:
var reservationMutator = function(value, data, type, params, component) {
console.log(data);
if (!data.checkoutable) return null;
if (data.is_reserved) {
return "Free";
}
return "Get";
}
is_reserved
和 checkoutable
是我的数据中预先存在的字段。
当页面最初加载时,table 是使用 ajax
创建的,单元格显示 Reservation
的正确字符串。当 is_reserved
在服务器端更改时,我调用 table.updateOrAddData([newData])
(作为 websocket 事件处理程序的一部分)。
问题:
当 table.updateOrAddData([newData])
运行 时,我可以看到自定义突变器被触发
从 console.log()
行中,可以看到 reservationAction
已在日志中正确设置。 但 table 本身显示旧值。 其他(非变异)列按预期在 table 上更新。我是不是遗漏了什么或者这是一个错误?
如果我改为使用 table.replaceData()
,那么控制台和 table 都会显示正确的值。但出于性能原因,我想避免在每个 websocket 事件上都这样做。
版本:5+我都试过了
如有任何帮助,我们将不胜感激!
不知道这是否是一种解决方法,或者我实际上应该如何首先做到这一点,但是 row.reformat()
似乎达到了我的预期。嗯。
table.updateOrAddData([row_obj])
.then(function(rows){
rows.forEach(row => {
row.reformat();
});
});