代码之家  ›  专栏  ›  技术社区  ›  amik

在中使用记忆值immer.js公司草案

  •  0
  • amik  · 技术社区  · 4 年前

    memoize-one 图书馆。但是这是一个问题,因为草稿与原始对象不相同。

    请注意,我使用的是curry producer,因此producer声明无法访问原始对象。

    const x = { foo: { bar: "bar" } };
    
    const barLength = memoizeOne(foo => {
      console.log("updating memoized value...");
      return foo.bar.length;
    });
    
    console.log("value updated", barLength(x.foo));
    console.log("memoized value used", barLength(x.foo));
    
    const producer = produce(draft => {
      draft.lastFooBarLength = barLength(draft.foo); // triggers update memoized value
    });
    
    console.log(producer(x).lastFooBarLength);
    
    0 回复  |  直到 4 年前
        1
  •  1
  •   mweststrate    4 年前