component-will-receive-props
的签名是这样的:
https://github.com/reagent-project/reagent/blob/master/src/reagent/core.cljs#L114
:component-will-receive-props (fn [this new-argv])
但new-args
似乎是函数或js对象。我原以为它是道具的地图。如何从new-argv
获取道具地图?我可以通过this
从(reagent/props this)
获取旧道具,但它是旧道具,不是新收到的。
答案 0 :(得分:4)
好的,我终于发现它是reagent.impl.util/extract-props
。
所以(reagent.impl.util/extract-props new-argv)
将返回新道具。
https://github.com/reagent-project/reagent/blob/v0.5.1-rc3/src/reagent/impl/util.cljs#L11
答案 1 :(得分:1)
我认为正确的方法是通过道具功能。 An example here显示了这一点。
;; assuming you have reagent required :as reagent
(reagent/create-class
{
...
:should-component-update
(fn [this]
(println "next-props" (reagent/props this))
...
})