为了账号安全,请及时绑定邮箱和手机立即绑定

根据按钮 ID 进行过滤

根据按钮 ID 进行过滤

弑天下 2023-10-14 11:11:08
我想过滤我的数据并根据单击的按钮动态显示过滤后的数据。我的方法是创建一个变量并在按下按钮时更新它并将该变量传递给过滤器函数,但是,这对我不起作用。有任何想法吗?这是一个片段:var PageID = "0"const showPage = (event) =>{PageID = event.target.id}<button id = "1" onClick = {showPage}>1</button><button id = "2" onClick = {showPage}>2</button><button id = "3" onClick = {showPage}>3</button><button id = "4" onClick = {showPage}>4</button><button id = "5" onClick = {showPage}>5</button>{data.pages.filter(page => page.id == PageID).map(filteredid =>(  <li>    <div className="description_box">      <img src={filteredid.products[0].img}/>      <h2>{filteredid.products[0].title}</h2>      <p>{filteredid.products[0].description}</p>    </div>  </li>))}
查看完整描述

2 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

我整理了一个工作示例。您需要将当前选择存储在状态中:

import React, { useState } from "react";

import "./styles.css";


export default function App() {

  const [pageId, setPageId] = useState("0");


  const showPage = (event) => {

    setPageId(event.target.id);

  };


  const data = {

    pages: [

      {

        id: "1",

        products: [

          { img: "test", title: "Title 1", description: "Description 1" },

          { img: "test", title: "Title 2", description: "Description 2" }

        ]

      }

    ]

  };


  return (

    <>

      <button id="1" onClick={showPage}>

        1

      </button>

      <button id="2" onClick={showPage}>

        2

      </button>

      <button id="3" onClick={showPage}>

        3

      </button>

      <button id="4" onClick={showPage}>

        4

      </button>

      <button id="5" onClick={showPage}>

        5

      </button>


      {data.pages

        .filter((page) => page.id === pageId)

        .map((filteredid) => (

          <li>

            <div className="description_box">

              <img src={filteredid.products[0].img} />

              <h2>{filteredid.products[0].title}</h2>

              <p>{filteredid.products[0].description}</p>

            </div>

          </li>

        ))}

    </>

  );

}


查看完整回答
反对 回复 2023-10-14
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

PageID应将其声明为状态以便具有反应性,然后使用它的设置器在按钮单击处理程序内进行更新:


const { PageID,setPageID} = React.useState('0')

const showPage = (event) =>{

setPageID(event.target.id)

}


查看完整回答
反对 回复 2023-10-14
  • 2 回答
  • 0 关注
  • 67 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信