私はhtml5ビデオとビデオとやりとりし、ビデオのcurrentTimeを使用するいくつかのコントロールを持つアプリケーションを構築しています。リアクションのhtml5ビデオでの真実の単一のソース
私が理解しているように、Appコンポーネントは、そのビデオの現在の状態を保持し、他の子に渡す必要があります(たとえば、現在の時間の何秒目かを示すディスプレイ)。
私はキーボードのショートカットを押して先にビデオをスキップするとします。そうすれば、私はApp状態を更新し、html5ビデオタグを持つコンポーネントにcurrentTimeを渡す必要があるので、それ自身を更新します。
しかし、ビデオが再生されているときは、アプリケーションの状態を常に更新しているので、状態をビデオに渡す必要があり、再生中のヒックアップが発生することがあります。
"shouldComponentUpdate"関数を使用してこれを修正することができましたが、ドキュメントは今後使用されなくなる可能性があるため、使用することをお勧めします。私はshouldComponentUpdate機能を自分のブール値のフラグを使って模倣することができますが、それは私のコードの臭いを悪くするようになりますが、フラグを渡す状態を制御しようとすべきではないようです。
ここでは、 "真実の単一のソース"はhtml5ビデオのcurrentTimeプロパティである必要がありますが、それは反応が意味する状態階層に適合していないようです(Appコンポーネントは状態を維持し、
私はcurrentTimeをアプリケーションの状態としてとどめて、ビデオのアップデートをハッキングして、ジッタやループを起こさないようにしてください。アプリのコンポーネントとは対照的に、
それを使用するか、ビデオコンポーネントにCURRENTTIMEの状態を管理することが可能であろう? –
私は、兄弟コンポーネントが状態を読み書きする必要があるからだとは思いませんが、私は本当にわかりません。パターンは親に任せているようです。それ以外の場合は、ビデオコンポーネントの状態を維持することが可能です –
非常に興味深い問題ですが、本当に唯一の問題は、ビデオが現時点を変更するために反応すると、将来の再生につながります。ただし、ビデオのcurrentTimeの更新をオフにすることはできません。これは、兄弟コンポーネントからの正式な更新にはもう応答しないためです。 currentTimeで何らかの「送信者」を渡して、送信者自身が変更を無視するようにする必要があるように、私には聞こえます。私は答えを考えます – narvoxx