javascript - 如果元素为空,如何不渲染它?

标签 javascript reactjs

我想呈现新闻提要。文章可以有标题、图片和作者姓名。我这样渲染:

render() {
    const newsItem = (article, id) => (
      <article className="news-item" key={id}>
        <img className="news-picture" src={`${article.urlToImage}`} alt=""/>
        <h1 className="news-title">{article.title}</h1>
        <p>Author: {article.author}</p>
      </article>
    );

    const newsFeed = this.state.news.map(e => newsItem(e, pushid()));

    return (
      <div className="news-feed">{newsFeed}</div>
    );
  }
}

有时 API 不会提供作者姓名(值为空),如果是这样,我不想渲染

<p>Author: {article.author}</p>

在react中如何正确完成?

最佳答案

试试这个:

{article.author && <p>Author: {article.author}</p>}

这意味着如果 article.author存在或不为空则渲染 <p>...</p> .

这与 if 的情况相同。语句,只不过这里不能写 if 语句。这与那是相等的。

if(article.author) return <p>Author: {article.author}</p>

关于javascript - 如果元素为空,如何不渲染它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55708928/

相关文章:

javascript - 在 React leaflet 中使用 Geojson 和大量数据

javascript - 透明 Canvas 视频 Safari 问题

javascript - 克隆元素时如何避免重复id?

javascript - 无法在 native react 中调用函数

javascript - 安装 npm react-facebook-login 时出现 "ERESOLVE unable to resolve dependency tree"

javascript - React 不会改变父元素的状态

javascript - Mapbox.js 在 Ruby on Rails 中呈现空白

使用 JSON 的 javascript 深复制

javascript - Vue.js:监视对象的动态更改

javascript - npm update 不更新某些包