提问者:小点点

React-下一个博客:浏览器上显示空行


我正在写一个从Mongo Atlas获取数据的博客,这个页面位于Vercel上的NextJS9.5.4中。博客页面使用静态道具和再生

数据以JSON的形式出现,所有内容都是字符串化的。

 return {
      props: {
        articles: JSON.parse(JSON.stringify(articles)),
      },

博客文章都有标题,文字和署名行(作者和日期),有些文章有链接,有些文章有一两张图片。该法典的有关部分如下:`

{articles.map((article) => (
      <li key={article.id}>
      <h2  className={styles.blogtitle} >{article.title}</h2>
      <p  className={styles.blogtext}>{article.text}</p>
      <img src={article.image1} className={styles.blogimage} alt={article.alt1} ></img>
      <img src={article.image2} className={styles.blogimage} alt={article.alt2} ></img>
      <p>{""}
      <a
       href={article.link} 
      title={article.link}
      target="_blank"
      rel="noopener noreferrer" >
      {article.link}            
      </a>
      </p>
      <p  className={styles.bloginfos}>{article.author}, le {article.date.slice(0,10)} à {article.date.slice(11,16)} h</p>
      </li>
    ))}

当我添加了图片和链接,所有没有图片或链接的帖子显示为2个图像和一个链接的空行。浏览器检查器显示每个列表条目都获得一个
,否则为空标记和包含

<a target="_blank" rel="noopener noreferrer"></a>

(至少它不会在新标签中添加空链接)

如何避免这些空行?我假设图像行是通过Next添加独立于内容的类来创建的。但是空段落没有内容,也没有特定的类,不应该在HTML中显示。整个项目都在GitHub上,这个页面是blog.js。


共1个答案

匿名用户

您可以做一个条件检查,如果图像url在那里,则只显示它,否则不显示它。例如,对于您的blog.js文件的第30行,您可以做:

{article.image1 && <img src={article.image1} className={styles.blogimage} alt={article.alt1} ></img>}

同样地,对于你认为在任何情况下都可以为空的所有项目,如a,p等。