【问题标题】:React validate object using map to avoid null values使用映射反应验证对象以避免空值
【发布时间】:2021-04-05 11:56:21
【问题描述】:

&& !(Object.keys(dataSource.attributes).length === 0)); 以下验证的替代方法是什么,任何方式都是验证/标题/渲染的映射

isProductAttributesTabEmpty() {
  const dataSource = this.getDataSource();

  return !(dataSource
    && dataSource.attributes
    && !(Object.keys(dataSource.attributes).length === 0));
}

【问题讨论】:

  • 嗯,这并没有真正的帮助。我仍然不知道你想要完成什么。此外,您当前的代码中没有 map 方法。
  • @nick !(Object.keys(dataSource.attributes).length === 0)); 是否有更好的方法来进行以下验证? =) 很抱歉给您带来不便
  • 不能使用map但是可以遍历Object as``` for(key in Object)```

标签: javascript reactjs object ecmascript-6 mapping


【解决方案1】:

您可能更喜欢的一个选项是使用可选链接并与空对象交替使用以传递到Object.keys

isProductAttributesTabEmpty() {
  const dataSource = this.getDataSource();
  return Object.keys(dataSource?.attributes || {}).length === 0;
}

【讨论】:

  • 是否可以使用.map(),或者.filter() over?还是 for-in 循环?
  • 很好地使用optional chaining ;)
  • @SharedUser .map.filter 没有帮助,因为您不需要遍历数组,除了检查它们的 .lengthfor..in 可以使用,但会非常冗长,最好使用.length
猜你喜欢
  • 1970-01-01
  • 2019-12-07
  • 2011-08-12
  • 1970-01-01
  • 2023-03-05
  • 2019-02-13
  • 2023-01-03
  • 1970-01-01
  • 2012-08-04
相关资源
最近更新 更多