【问题标题】:React map function and CSS gridReact 地图功能和 CSS 网格
【发布时间】:2020-09-18 15:56:06
【问题描述】:

大家好, 我正在尝试使用 React 中的此代码按列制作 5 个元素的 CSS 网格。 问题是css网格将cartItem视为网格的一个元素,但我希望cartItem(Img,Title,Price,Add,Delete)的每个div都成为网格的一部分。我怎么能那样做?谢谢

const Cartitems = (props) => {
  return (
    <div className={classes.Container}>
      <div></div>
      <div>Items</div>
      <div>Price</div>
      <div>Quantity</div>
      <div>Remove</div>
      {props.orders.map((val, i) => {
        return val.num === 0 ? null : (
          <CartItem number={val.num} color={val.color} />
        );
      })}
    </div>
  );
};
const CartItem = (props) => {
  return (
    <div className={classes.Container}>
        <div className={classes.Img}></div>
        <div className={classes.Title}>
          Surf style balance board {props.color}
        </div>
        <div className={classes.Price}>149.00€</div>
        <div className={classes.Add}>
          <div>–</div>
          {props.number}
          <div>+</div>
        </div>
        <div className={classes.Delete}>X</div>
    </div>
  );
};

【问题讨论】:

    标签: css reactjs css-grid


    【解决方案1】:

    您可以使用 React 片段,而不是将 CartItem 的字段包装在 div 中。这将导致您的购物车项目的所有子项在 DOM 中彼此相邻:

    const CartItem = (props) => {
      return (
        <>
            <div className={classes.Img}></div>
            <div className={classes.Title}>
              Surf style balance board {props.color}
            </div>
            <div className={classes.Price}>149.00€</div>
            <div className={classes.Add}>
              <div>–</div>
              {props.number}
              <div>+</div>
            </div>
            <div className={classes.Delete}>X</div>
        </>
      );
    };
    

    注意,除了使用&lt;&gt;&lt;/&gt;,您还可以使用&lt;React.Fragment&gt;&lt;/React.Fragment&gt;。效果一样。

    另一种方法是在 div 上使用 display: contents 包装您的 CartItem 子级,这会将每个子级设置在父网格上。不幸的是,这有 somewhat limited browser support 和一些 accessibility issues

    【讨论】:

    • OK 刚刚遇到了完全相同的问题,而您的回答揭示了 React Fragment 的强大功能,这正是我所需要的。
    猜你喜欢
    • 2019-01-31
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多