我有一个带有几个键值对的Immutable.Map。
Object {1: -200, 2: 13540}
<Component
items={this.props.items.get(key) || 0}
/>
地图中可能存在或不存在密钥。在它不存在的情况下,我只想将零传递给组件。这是必需的道具。
有条件的安全吗?如果它不安全,有什么更好的方法?
答案 0 :(得分:1)
条件是安全的,但你的方式是模棱两可的 - 你可能会得到布尔表达式的结果,而不是实际值。
我这样做是明确的:
let val = this.props.items.get(key);
items={val ? val : 0}
这显式返回val
或0
,而不是布尔表达式val || 0
的结果。
答案 1 :(得分:0)
你的代码看起来似乎不会在没有经过大量修改的情况下进行编译,但是是你当然可以做那种事情。
关键是Immutable.js不会在丢失的键上抛出错误但返回值为undefined
的错误,因此undefined || 0
通过以下方式评估为0
type-lax“如果这第一件事是真实的,那么就返回它,否则返回||
的所有第二件事。