在 Reactjs 中渲染每个数组项?

Rendering every array items in Reactjs?

提问人:bamb1 提问时间:11/14/2023 更新时间:11/14/2023 访问量:44

问:

尝试渲染我的generateSeats功能中的每个项目,但我目前只渲染一个座位。我知道我的第一个函数应该返回一个数组,但是在屏幕上呈现数组中的每个项目都让我难住了。

const generateSeats = () => {
    let numRow = 8;
    let numColumn = 3;
    let rowArray = [];
    let start = 1;
    let reachnine = false;

    for(let i=0;i<numRow;i++) {
        let columnArray = [];
        for(let j=0;j<numColumn;j++) {
            let seatObject = {
                number : start,
                taken : Boolean(Math.round(Math.random())),
                selected: false, 
            }
            columnArray.push(seatObject);
            start++;
        }
        if(i==3){
            numColumn += 2
        }
        if(numColumn <9 && !reachnine) {
            numColumn +=2;
        } else {
            reachnine=true;
            numColumn -= 2;
        }
        rowArray.push(columnArray)
    }
    return rowArray
}

const PurchaseTicket = () => {
  return (
    <div className='w-full h-full  overflow-auto scrollbar-hide'>
        <div className='w-full h-full flex flex-1 bg-black'>
            <div className='bg-white w-[12px] h-[12px] rounded-t-[10px]'>{generateSeats}       
            </div>
        </div>
    </div>
  )
reactjs arraylist 顺风-css

评论

2赞 David 11/14/2023
错字?您是否忘记了调用函数的括号?(顺便说一句,这应该会在浏览器的控制台中产生错误。你检查过吗?generateSeats

答:

2赞 Pascal Thurow 11/14/2023 #1

也许这样的东西对你有用?我使用地图功能来获取每一行,然后使用同样的东西来获取每个座位:

return (
    <div className="w-full h-full  overflow-auto scrollbar-hide">
      <div className="w-full h-full flex flex-1 bg-black">
        {generateSeats().map((row) => {
          return row.map((seat) => {
            return (
              <div className="bg-white w-[12px] h-[12px] rounded-t-[10px]">
                {/*Here you can access every value by seat.<value>*/}
                {seat.number}
              </div>
            );
          });
        })}
      </div>
    </div>
  );

评论

0赞 bamb1 11/15/2023
完善!这正是我所缺少的。谢谢帕斯卡!