custom elementがReact内で使用されています。 Reactから要素の属性を変更できるようにしたい。私はまた、要素自体の内部から同じ属性を変更できるようにしたい。残念ながら、要素が独自の属性を変更すると、Reactの仮想DOMがその属性が変更されたことに気づかずに関係すると思われるいくつかの奇妙な副作用が発生します。内部のカスタム要素内から属性を変更する
<my-component foo="bar"/>
そしてmy-component
は、要素がクリックされたときに、bar
からのfoo
の値を変更します、ということの内部のロジックを持っている:私たちは次のことを返す関数をレンダリングリアクトしていると仮定し、説明するために
unicorn
。この時点までのすべてが期待通りに機能します。問題は、次のレンダリングサイクルでfoo
がbar
に戻されていないことです。 I foo
をbar
に設定します。
私の推測では、それが仮想のDOMを反応させるのであるキャッシュされた値としてbar
を、したがって、bar
に戻ってそれを設定しようとしない(それがunicorn
に変更されている気付いていません)があります。
- 私の理解は正しいですか?
- どうすれば
foo
の値が次のレンダリングサイクルでbar
に戻されますか?
属性や子供に変更がなければ、Reactは ''に触れません。 –
thangngoc89
カスタム要素はリアクションだけでなく、リアクションの更新サイクル(1-way)などを使うことができます。要するに、ReactなしでHTMLを変更しないでください。 – dandavis
バーがハードコーディングされているようです( 'foo =" bar "はハードコーディングされています)。おそらく、状態を実行して管理するためのリアクションの背後にあるアーキテクチャフレームワークを考えてみてください。私は個人的にReduxが好きです。 – ajmajmajma