reactjs 仅< div>在数组中定义了属性时显示

o8x7eapl  于 2023-02-22  发布在  React
关注(0)|答案(2)|浏览(101)

如果tax: true在任何cartItem中,我只想显示<div>taxproductDetails内部的一个 prop ,它来自cartItem

const Content = (props) => { 

    let cartItem = props.cartItem;

        {cartItem.indexOf(props.productDetails?.tax) > -1 && (
            <div>
                Show if Tax
            </div>
          )}

    };
    export default Content;
o2rvlv0m

o2rvlv0m1#

您提供的代码中的条件是检查cartItem数组中是否存在props.productDetails.tax的值。但是,如果您希望仅在cartItem productDetails中存在tax: true时才显示<div>,则需要检查cartItem数组中每个productDetails对象的税值。
您可以使用Array.some()方法执行此操作,如果数组中至少有一个元素满足回调函数中指定的条件,则该方法返回true。

const Content = (props) => {
  let cartItem = props.cartItem;

  if (cartItem.some((item) => item.productDetails?.tax === true)) {
    return (
      <div>
        Show if Tax
      </div>
    );
  } else {
    return null;
  }
};

export default Content;

如果你还不明白,那么我希望你提供 prop 和产品的数据。

n6lpvg4x

n6lpvg4x2#

1.购物车项目是一个数组,因此您将有多个购物车项目需要循环每个购物车项目,并为所有含税购物车项目显示div

const Content = (props) => { 
 let cartItem = props.cartItem;
 return (
 {cartItem.filter(p=>p?.tax).map(d => (
        <div>
            Show if Tax
        </div>
      )))}
 };
 export default Content;

1.如果任何购物车项目有税,则需要显示div

const Content = (props) => { 

  let cartItem = props.cartItem;
  return (
  {cartItem.findIndex(p=>p?.productDetails?.tax) !== -1 ?
     <div>
         Show if Tax
     </div>
  : <></> )}
};
 export default Content

;

相关问题