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_reservedcheckoutable 是我的数据中预先存在的字段。

当页面最初加载时,table 是使用 ajax 创建的,单元格显示 Reservation 的正确字符串。当 is_reserved 在服务器端更改时,我调用 table.updateOrAddData([newData]) (作为 websocket 事件处理程序的一部分)。

问题: 当 table.updateOrAddData([newData]) 运行 时,我可以看到自定义突变器被触发 从 console.log() 行中,可以看到 reservationAction 已在日志中正确设置。 但 table 本身显示旧值。 其他(非变异)列按预期在 table 上更新。我是不是遗漏了什么或者这是一个错误?

如果我改为使用 table.replaceData(),那么控制台和 table 都会显示正确的值。但出于性能原因,我想避免在每个 websocket 事件上都这样做。

版本:5+我都试过了

如有任何帮助,我们将不胜感激!

jsfiddle

不知道这是否是一种解决方法,或者我实际上应该如何首先做到这一点,但是 row.reformat() 似乎达到了我的预期。嗯。

table.updateOrAddData([row_obj])
    .then(function(rows){
        rows.forEach(row => {
            row.reformat();
        });
    });