调用时om/build,可以发送一个fn选项,根据文档:
`fn - a function to apply to x before invoking f.`
我的问题是,当将om/transact!orom/update!应用于由 操纵的光标 (x) 时,fn原始光标如何受到影响?
调用时om/build,可以发送一个fn选项,根据文档:
`fn - a function to apply to x before invoking f.`
我的问题是,当将om/transact!orom/update!应用于由 操纵的光标 (x) 时,fn原始光标如何受到影响?
(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!它。
希望有帮助。