それぞれ独自の状態ストリームを持つ変更可能な子コンポーネント (POJO オブジェクト) のセットがあります。ユーザーが addChild/removeChild/clearChildren をトリガーするたびに、子状態ストリームの新しいセットが #switchMap で発行されます。ここまでは順調ですね!(そして、RxJS にはとても驚かされました!)
が空の配列でないRx.Observable.from(arrayOfStateStreams).combineAll()
限り、良い結果が得られます。arrayOfStateStreams
これはより高いレベルで結合された (最新の) 部分的な状態であるため、空の配列を出力する必要があります。そうしないと、グローバル状態ツリーに、もはや真実ではない古い状態データが含まれます!
のような予約済みトークンを発行できますが['EMPTY-ARRAY-PLACEHOLDER-TOKEN']
、それは奇妙です。より良い方法は、最後のインデックスがゴミと見なされるように、常に最後のストリームを配列に追加することです。ただし、コードと状態はまだ混乱しています。の子状態を持つ可能性があるため、使用[null]
は OK ではありません'null'
。
これをうまく解決できる人はいますか?#combineAll の後に空の配列の他の表現がないはずなので、これはサポートできませんか?