ReactJS:在未定义道具的情况下使用条件是否安全?

时间:2015-12-18 18:33:36

标签: javascript reactjs immutable.js

我有一个带有几个键值对的Immutable.Map。

Object {1: -200, 2: 13540}

<Component
    items={this.props.items.get(key) || 0}
/>

地图中可能存在或不存在密钥。在它不存在的情况下,我只想将零传递给组件。这是必需的道具。

有条件的安全吗?如果它不安全,有什么更好的方法?

2 个答案:

答案 0 :(得分:1)

条件是安全的,但你的方式是模棱两可的 - 你可能会得到布尔表达式的结果,而不是实际值。

我这样做是明确的:

let val = this.props.items.get(key);
items={val ? val : 0}

这显式返回val0,而不是布尔表达式val || 0的结果。

答案 1 :(得分:0)

你的代码看起来似乎不会在没有经过大量修改的情况下进行编译,但是你当然可以做那种事情。

关键是Immutable.js不会在丢失的键上抛出错误但返回值为undefined的错误,因此undefined || 0通过以下方式评估为0 type-lax“如果这第一件事是真实的,那么就返回它,否则返回||的所有第二件事。