我是react的新手.我在css文件中有两个类.一个是btn,另一个是btn活动.我想在默认情况下将btn活动类设置为第一个按钮,当我单击其他按钮时,它将被删除并添加到当前按钮.如果有人在这方面帮助我,我将不胜感激.提前谢谢.

import { useState } from "react";
import buttons from "../data/buttons.json";

const Home = () => {
  return (
    <div>
      {buttons.map((item, index) => {
        return (
          <button key={index} className="btn">
            {item.valu}
          </button>
        );
      })}
    </div>
  );
};

推荐答案

保持状态以处理所选按钮索引.

try 以下操作:

import { useState } from "react";

const Home = () => {
  const [selectedIndex, setSelectedIndex] = useState(0);

  return (
    <div>
      {buttons.map((item, index) => {
        return (
          <button
            key={index}
            onClick={() => setSelectedIndex(index)}
            className={`btn ${selectedIndex === index ? "active" : ""}`}
          >
            {item.valu}
          </button>
        );
      })}
    </div>
  );
};

Reactjs相关问答推荐

获取点击的国家/地区名称react 映射

React组件未出现

错误:操作必须是普通对象.使用自定义中间件进行异步操作. Redux/工具包

强制 useEffect 仅运行一次

Mui 在 TextField 标签上添加工具提示显示两个工具提示框

Chakra UI:如何在选中状态下设置复选框 colored颜色

React-router-dom的链接不改变路由(ReactRouter6)

useRef.current.value 为空值

在添加了useplacesautocomplete后,在构建React/Next.js项目时,NPM抛出类型期望的错误

React中useAuthenticator的authState在成功登录后仍保持未认证状态 - 需要强制刷新

在 React-Select 中显示多值的倒序

在react 中单击父级中的按钮时如何将数据从子级发送到父级?

有没有办法在用户离开页面时防止输入模糊?

Select 项目后 Select HeadlessUI 组合框中的所有文本?

当我在 useEffect 中使用 useDispatch 时,我的组件继续渲染

如何制作基于对象 struct 呈现数据的可重用组件?

为什么我在此代码段中看不到 useEffect for count = 1?

如何在 JSX 中使用 -webkit- 前缀?

react-admin useGetIdentity 只返回全名,id 未定义 头像未定义

Select MenuItem 时 Material-ui 不更改样式