在使用 RXJS pluck() 之前如何检查 属性 是否存在?
How do I check if property exists before using RXJS pluck()?
如果“canLogin”属性 存在,则以下代码可以正常工作。
this.canLogin$ = this.permissions$.pipe(pluck('canLogin'));
如果 属性 不存在,我会得到这个错误:
ERROR TypeError: Cannot read property 'canLogin' of undefined
如果 属性 不存在,我如何检查 null 或 return null?
我尝试过类似的方法,但它不起作用
this.canLogin$ = this.permissions$.pipe(pluck('canLogin')) || of(false);
那不是因为 属性 不存在。该错误是因为 permissions$
发出 undefined
并且不能有任何 属性.
因此您可以执行以下操作:
this.canLogin$ = this.permissions$
.pipe(
map(obj => obj || {}),
pluck('canLogin'),
);
如果“canLogin”属性 存在,则以下代码可以正常工作。
this.canLogin$ = this.permissions$.pipe(pluck('canLogin'));
如果 属性 不存在,我会得到这个错误:
ERROR TypeError: Cannot read property 'canLogin' of undefined
如果 属性 不存在,我如何检查 null 或 return null?
我尝试过类似的方法,但它不起作用
this.canLogin$ = this.permissions$.pipe(pluck('canLogin')) || of(false);
那不是因为 属性 不存在。该错误是因为 permissions$
发出 undefined
并且不能有任何 属性.
因此您可以执行以下操作:
this.canLogin$ = this.permissions$
.pipe(
map(obj => obj || {}),
pluck('canLogin'),
);