React 隐藏/显示元素

React 隐藏/显示元素

问题描述

我有多个按钮,以数组对象(姓名,年龄)的形式编写。我希望只显示所点击按钮的(年龄)元素

我希望只显示所点击按钮的(年龄)元素,但它却显示了所有按钮的年龄

const App = () => {
  const [showAge, setShowAge] = useState(false);
  const people = [
    {
      name: "Jeje",
      age: 4,
    },
    {
      name: "Nene",
      age: 5,
    },
    {
      name: "Tom",
      age: 8,
    },
  ];
  return (
    <div>
        {people.map((person) => (
          <>
            <div onClick={() => setShowAge(!showAge)}>
              <p data-id={person.name}>{person.name}</p>
            </div>
            {showAge && <p className="px-3">{person.age}</p>}
          </>
        ))}
    </div>
  );
};

export default App;

解决方案

您可以将仅选择的索引存储在状态中。

const [idx, setIdx] = useState();
{people.map((person, i) => (
  <>
    <div onClick={() => setIdx(i)}>
      <p data-id={person.name}>{person.name}</p>
    </div>
    {idx === i && <p className="px-3">{person.age}</p>}
  </>
))}

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程