0
不思議なことに、コンポーネントをメタデータとしてフック付きの関数として定義すると、コンポーネントライフサイクル関数が呼び出されません。それは私が見た例のように)。Reagent:メタノ注釈付きコンポーネント関数でコンポーネントがマウントされていないフックが呼び出されない
(defn my-callback [this] (println (.-innerHTML (reagent/dom-node this))))
(defn inner-compo []
[:p "content"])
(defn my-compo []
(with-meta inner-compo
{ :component-did-mount my-callback })
)
reagent/create-class
でコンポーネントを作成すると問題なく動作します。私は試薬0.6.1
を使用しています。見つかっ
ソリューション:あなたの代わりに、関数のヴァールとしての要素を定義する必要が:
(def my-compo
(with-meta inner-compo
{ :component-did-mount my-callback })
)
が、それは正常に動作します - 本当に奇妙な。
理由を説明できる人は誰ですか?
に関して、フリッケ
これは、試薬が '[my-combo]'を読み取っているときに分析が行われることを意味します。そして、それがマウントされているときだけ、呼び出されます。これはreact.jsフックを追加するには遅すぎますか? – fricke
そうだと思います。 – akond