【问题标题】:React json check if empty?反应json检查是否为空?
【发布时间】:2021-08-12 20:25:36
【问题描述】:

我正在为学校做最后一个项目。我想检查 if "{item.fields.haaksoort}" 是否为空。当这是空的时候,我不想发生任何事情。其他帖子"<p>haaksoort: {item.fields.haaksoort}</p>"

旁注:我可以显示"<p>haaksoort: {item.fields.haaksoort}</p>"并且连接正确。

【问题讨论】:

  • 什么是haaksoort?数组、对象、字符串?
  • haaksoort 只是

    Haaksoort:

    中的一个词,荷兰语中的 hooktype。
  • 如果你试图渲染的对象是空的,它会产生一个反应错误,最好的办法是在你渲染结果之前检查它是否为空。
  • 你可以像下面这样添加一个中间件 isEmpty :exports.isEmpty = (string)=> { if (string.trim() === "") { return true; } 其他 { 返回 false } }

标签: reactjs


【解决方案1】:

您可以使用此模式来检查空变量。如果该字段有值,那么您的 <p> 将呈现。如果haaksort 不存在于item.fieldshaaksort 的值未定义,则<p> 将不会呈现。

{item.fields.haaksoort && (<p>haaksoort: {item.fields.haaksoort}</p>)}

对此有几点说明:

  • itemfields 也必须存在。
  • 如果haaksoort 是空字符串,这将不会产生预期的结果

如果您需要检查上述条件,那么问题评论中提到的中间件功能将最适合您。然后你可以在你的渲染代码中做这样的事情:

{isEmpty(item.fields.haaksoort) ? '' : (<p>haaksoort: {item.fields.haaksoort}</p>)

请注意,这是一个调用中间件函数的简单示例,它假定 item 存在且属性 fields 也存在。

【讨论】:

  • 如果不想检查item和fields是否存在,可以使用可选链操作符:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
  • @SilviuBurcea 是的,我确实考虑过包括这个(实际上忘了回去提一下)。但是,我在这方面只取得了适度的成功。虽然我承认我可能不得不返回并重新访问该功能,但我遇到了跨浏览器支持问题以及其他不一致之处。以至于只需要编写一个中间件函数来解决它。
  • 但我们谈论的是一个 React 应用程序,如果使用 CRA 引导,则其中包括转译。
猜你喜欢
  • 2012-12-13
  • 2015-12-24
  • 1970-01-01
  • 1970-01-01
  • 2021-02-20
  • 1970-01-01
  • 2019-01-23
  • 2020-09-20
  • 2018-01-10
相关资源
最近更新 更多