ライフサイクル関数で使用するいくつかの共有(静的)変数を定義できるReagentフォーム-3コンポーネントと同様のことをしたいと思います。Om.Nextライフサイクル関数内のローカル状態を閉じる
基本的に私の質問は、let
に相当するものを以下の試薬コードスニペットでどのように構築するのですか?私はOmのdefui
マクロを使ってこれを正しく行う方法を理解できないようです。
単純な例は、gdom/getElement
でコンポーネントの特定のインスタンスのすべてのライフサイクル機能にアクセスできる内部IDを生成することです。
(defn my-component
[x y z]
(let [id (gensym "my-component-")] ;; <-- how to do this in Om?
(reagent/create-class
{:component-did-mount (...)
:component-will-mount (...)
:reagent-render
(fn [x y z] (js/console.log id)))) ;; <-- id is available
おそらく間違った用語を使用しましたが、私はコンポーネントの状態を変更する方法を探していません。インスタンス化の際に一度コンポーネントをパラメータ化する必要があります。 Omの状態関連関数は、再レンダリングなどを引き起こしますが、これは私が望むものではありません。 OPの試薬の例では、 'my-component'のすべてのインスタンス化は異なる' id'を持ちますが、 'id'は各インスタンス化のすべてのライフサイクル機能で利用可能になります。これらのことをアプリ状態にすることは、私がやろうとしていることに対して大きな過度の不安のようですが、おそらく私はまだ完全に正しい考え方ではありません。 –
ライフサイクル機能によってはコンポーネントのローカル状態?私が言及しなかった別の選択肢は、特定のコンポーネントに関係しないが、すべてから簡単にアクセスできる、「リンク」として知られる便利なグローバルな部分です。照会されたものはレンダリング(これらのリンクを含む)を引き起こしますが、それは本当に学問的です。 –
あなたのご意見をお寄せいただきありがとうございました。 –