调用时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 x
is{:x 1}
和f
is #(update-in % [:x] inc)
,f
将应用于游标的值;底层原子不会改变。当你om/transact!
或它会在光标内的原子上进行om/update!
操作。在下一次渲染中,您将再次获得基于更新的.(f x)
x
(f x)
x
另一方面,如果f
makex
不是光标(例如f
is om/value
),那么您将根本无法om/transact!
使用om/update!
它。
希望有帮助。