簡體   English   中英

當分頁項在 ReactJS 中處於活動狀態時如何更改顏色?

[英]How to change color when Item of paginate is active in ReactJS?

我正在渲染一個元素列表並進行分頁,我的列表的每個頁面都包含 3 個元素。

分頁工作正常。 但我不知道如何更改活動分頁項的顏色,以便用戶知道它在哪個頁面上。

你能告訴我怎么做嗎?

這是我放入codeandbox的代碼

在此處輸入圖片說明

例如,在上面的照片中,活動頁面是 2。但沒有跡象表明這一點。

先感謝您。

您可以在map函數上動態添加類,以便當前頁面接收一個附加類:

Card組件的返回方法:

return (
    <div>
      {currentPerfumes.map((item) => (
        <CardItem key={item.id} item={item} />
      ))}
      <div className={classes.page}>
        <div className={classes.pageContent}>
          {pageNumbers.map((page, index) => {
            const spanClasses = [classes.pageNumber]; // list of classes
            if (index === currentPage - 1) // if we are on current page
              spanClasses.push(classes.activePage); // add an additional class
            return (
              <span
                key={page}
                id={page}
                onClick={() => handleClick(page)}
                className={spanClasses.join(" ")}
              >
                {page}
              </span>
            );
          })}
        </div>
      </div>
    </div>
  );

style.js 有一個新的樣式, activePage

import { makeStyles } from "@material-ui/core";

export const useStyles = makeStyles({
  page: {
    display: "flex",
    flexDirection: "row",
    justifyContent: "center",
    alignItems: "center"
  },
  pageContent: {
    display: "flex",
    flexDirection: "row",
    justifyContent: "space-between",
    alignItems: "center",
    width: "20%"
  },
  pageNumber: {
    cursor: "pointer",
    backgroundColor: "#ff8f32",
    color: "#fff",
    fontSize: "24px",
    width: "20px",
    textAlign: "center"
  },
  activePage: {
    backgroundColor: "blue"
  }
});

此處查看此操作。

在您的地圖功能中,您可以在 page === currentPage 的條件下設置一個活動的 className

          {pageNumbers.map((page) => (
            <span
              key={page}
              id={page}
              onClick={() => handleClick(page)}
              className={page === currentPage ? classes.activePageNumber : classes.pageNumber}
            >
              {page}
            </span>
          ))}

當你映射你的頁面時,你可以添加每次迭代的索引,然后你可以檢查索引是否等於當前頁面,而不是給它默認類。 像這樣:

{pageNumbers.map((page, id) => (
            <span
              key={page}
              id={page}
              onClick={() => handleClick(page)}
              className={
                currentPage === id ? classes.selectedPage : classes.pageNumber
              }
            >
              {page}
            </span>
          ))
}

然后將新類selectedPage添加到 css 中:

例如:

selectedPage: {
    cursor: "pointer",
    backgroundColor: "#000000",
    color: "#fff",
    fontSize: "24px",
    width: "20px",
    textAlign: "center"
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM