2

调用时om/build,可以发送一个fn选项,根据文档:

  `fn - a function to apply to x before invoking f.`

我的问题是,当将om/transact!orom/update!应用于由 操纵的光标 (x) 时,fn原始光标如何受到影响?

4

1 回答 1

0

(om/build comp1 (f cursor))具有相同的效果(om/build comp1 cursor {:fn f})

所以答案是,这真的取决于做什么f。只要(f x)(或它的内容)仍然是一个光标,你就可以om/transact!om/update!在它(或它的内容)上。

例如 if xis{:x 1}fis #(update-in % [:x] inc)f将应用于游标的;底层原子不会改变。当你om/transact!或它会在光标内的原子上进行om/update!操作。在下一次渲染中,您将再次获得基于更新的.(f x)x(f x)x

另一方面,如果fmakex不是光标(例如fis om/value),那么您将根本无法om/transact!使用om/update!它。

希望有帮助。

于 2015-08-28T01:21:28.113 回答