簡體   English   中英

如何在沒有代理的情況下為Observable對象中的未定義鍵設置默認值?

[英]How can I set a default value for an undefined key in an Observable object without a Proxy?

我有一個可觀察的

someObjs$ = this.getData().pipe(
    map((data: Data) => ({
        a: true,
        b: true,
        c: true,
      })
    ),

如果用戶在某處設置的標志為false,那么即使將Observable展開到模板中后,即使該鍵不存在,我也希望始終將其返回true。

例,

someObj$ | async as obj

{{ obj['d'] }} // true

我不確定是否要使用任何鍵( obj['foo']obj['bar']或預定義鍵obj['d']但我假設使用預定義鍵。

您可以在pipe方法中使用startWith運算符。 創建一個新的Data實例,並使用spread( ... )運算符分配d屬性。

const newData = new Data();

someObjs$ = this.getData().pipe(
    startWith({...newData, d: true}),
    map((data: Data) => ({
        a: true,
        b: true,
        c: true,
      })
 )

或者在Data類中,您可以分配默認值。 然后,您將不需要傳播運算符。 您可以將startWith與默認Data實例一起使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM