简体   繁体   English

如何在 ReactJS 的 map 函数中使用 For 循环

[英]How to use For Loop inside the map function in ReactJS

for loop doesn't work inside the map function I create map function in map function add if condition and want to change the ID value in each iteration. for 循环在 map 函数中不起作用我在 map 函数 add if 条件中创建 map 函数并希望在每次迭代中更改 ID 值。 To accomplish this I tried for loop but this is not working yet.为了实现这一点,我尝试了 for 循环,但这还没有奏效。

How I can use For Loop inside the map function?如何在 map 函数中使用 For 循环?

 {items.map((d) => ( <Accordion key={d.ID} title={ <div> <tr className="btn-heading"> <td>{d.ID}</td> <td>{d.Mail}</td> <td>{d.Name}</td> <td>{d.PhoneNo}</td> <td>{d.City}</td> <td>{d.Date}</td> <td>{d.Time}</td> </tr> </div> } content={ <div> <p className="header"> <span className="header-content">Shipping Address:</span> 292 Naqshband Colony. Near rabbania Mosque. Multan </p> <Table size="sm"> <thead> <tr> <th>#</th> <th>Article No</th> <th>Product Name</th> <th>Quantity</th> <th>Price</th> <th>Total Amount</th> </tr> </thead> <tbody> for (var i = 0; i < d.ID; i++) { <--- for loop does'nt working {products.map((c) => c.ID === 1 ? ( <tr key={c.ID}> <td>{c.ArticleNo}</td> <td>{c.ProductName}</td> <td>{c.Quantity}</td> <td>{c.Price}</td> <td>{c.TotalAmount}</td> </tr> ) : null )} } </tbody> </Table> </div> } /> ))}

Here is my codesandbox: https://codesandbox.io/s/hungry-bardeen-8m2gh?file=/src/App.js这是我的代码和盒子: https ://codesandbox.io/s/hungry-bardeen-8m2gh ? file =/ src/App.js

...

function App() {
  const [items, setItems] = useState([]);
  const [products, setProducts] = useState([]);

  const renderProducts = (d, products)=> {
    const result = []
    for (var i = 0; i < d.ID; i++) {  
      let product = products.map((c) =>
        c.ID === 1 ? (         
            <tr key={c.ID}>
              <td>{c.ArticleNo}</td>
              <td>{c.ProductName}</td>
              <td>{c.Quantity}</td>
              <td>{c.Price}</td>
              <td>{c.TotalAmount}</td>
            </tr>
        ) : null                              
        )
        result.push(product)
      }
    return result
  }

  ... 

  return (
    <div className="container-fluid">
      <section className="heading">
        <h4>Products Details</h4>
        <input
          type="file"
          className="input-field"
          onChange={(e) => {
            const file = e.target.files[0];
            readExcel(file);
          }}
        />
      </section>
      {items.map((d) => (
        <Accordion
          title={
            <div>
              <tr key={d.ID} className="btn-heading">
                <td>{d.ID}</td>
                <td>{d.Mail}</td>
                <td>{d.Name}</td>
                <td>{d.PhoneNo}</td>
                <td>{d.City}</td>
                <td>{d.Date}</td>
                <td>{d.Time}</td>
              </tr>
            </div>
          }
          content={
            <div>
              <p className="header">
                <span className="header-content">Shipping Address:</span>
                292 Naqshband Colony. Near rabbania Mosque. Multan
              </p>
              <Table size="sm">
                <thead>
                  <tr>
                    <th>#</th>
                    <th>Article No</th>
                    <th>Product Name</th>
                    <th>Quantity</th>
                    <th>Price</th>
                    <th>Total Amount</th>
                  </tr>
                </thead>
                <tbody>
                  {renderProducts(d, products)}
                </tbody>
              </Table>
            </div>
          }
        />
      ))}
    </div>
  );
}
export default App;


声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM