Javascript 为什么布尔运算符在.map中只返回假值?

Javascript 为什么布尔运算符在.map中只返回假值?,javascript,reactjs,Javascript,Reactjs,我的布尔运算符有问题。我想一个div返回只有当特征是真实的。我的控制台日志显示假值,但真值显示未定义 {data.allContentfulProducts.nodes.map(product => { return ( <Link to={`/shop/${pageContext.slug}/${product.slug}`} className={styles.featuredItem}

我的布尔运算符有问题。我想一个div返回只有当特征是真实的。我的控制台日志显示假值,但真值显示未定义

{data.allContentfulProducts.nodes.map(product => {
        return (
          <Link
            to={`/shop/${pageContext.slug}/${product.slug}`}
            className={styles.featuredItem}
            key={product.id}
          >
            {console.log(product.featured)}

            {product.featured ? (
              <div className={styles.featuredSticker}>
                <p>Look I'm New!</p>
              </div>
            ) : null}

            <Img
              className={styles.featuredImage}
              alt={product.mainImage.title}
              fluid={product.mainImage.fluid}
              style={{
                position: 'relative',
                width: '100%',
                height: '100%',
              }}
              objectFit="cover"
            />
            <h3>{product.title}</h3>
          </Link>
        )
      })}
{data.allContentfulProducts.nodes.map(产品=>{
返回(
{console.log(product.featured)}
{产品特色(
看,我是新来的

):null} {product.title} ) })}

任何帮助都将不胜感激。

只有在jsx表达式为真时,才可以使用&&operator返回它

{product.featured && (
          <div className={styles.featuredSticker}>
            <p>Look I'm New!</p>
          </div>
        ) 
{product.featured&&(
看,我是新来的

)
删除我的缓存解决了这个问题。使用Gatsby&Contentful解决了这个问题。

控制台.log
总是返回未定义的
日志。它是一个日志工具。它的返回值不应该有用。我没有使用控制台日志返回任何东西…我可能没有正确解释自己。在我的.map中我有一个控制台日志,logging product.featured.False返回False,true返回‘未定义’。@AaronDuke,对于控制台部分,我相信它归结为术语,而不是
返回
,更清楚的说法是
显示
显示
等。如果控制台日志在显示true时显示未定义,您确定该值是真的吗是吗?如果它记录的是
未定义的
,那么它就是
未定义的
。可能是您在尝试设置属性名称时键入了一个错误。删除
{console.log(product.featured)}
行。代码是否按预期工作?如果不是,请添加
console.log(JSON.stringify(product,null,2))
返回(
行)上方,在
映射(product=>{
行之后。只查看控制台,查看
“特色”
属性的值。