首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React -仅将map()函数中的className设置为一个项

React -仅将map()函数中的className设置为一个项
EN

Stack Overflow用户
提问于 2020-07-25 22:13:49
回答 1查看 240关注 0票数 0

我正在通过一个项目列表进行映射,当单击其中一个时,我希望将其颜色更改为粉红色。我使用钩子来设置状态,但问题是,当单击一个项目时,它们都会变成粉红色(因此都分配给className )。

代码语言:javascript
复制
const ButtonCustom = () => {

    const [menuState, setMenuState] = React.useState(false);

    let className = "RichEditor-styleButton"
    {
        menuActive === true?
        className += " RichEditor-styleButton-active":(null)
    }
    return (
        <span
          className={className}
          onClick={() => setMenuState(!menuActive)}
        >
            {value}
        </span>
      );
  }


const Home = () => {
    return(
      <div>
          {items.map((button) => {
              return ButtonCustom();
          })}
    </div>
    )
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-25 22:36:49

这是一个奇怪的语法。我会这样改写它:

代码语言:javascript
复制
const ButtonCustom = () => {

    const [menuActive, setMenuActive] = React.useState(false);

    let className = "RichEditor-styleButton"
    if (menuActive === true) {
        className += " RichEditor-styleButton-active";
    }
    return (
        <span
          className={className}
          onClick={() => setMenuActive(active=>!active)}
        >
            {value}
        </span>
      );
  }


const Home = () => {
    return(
      <div>
          {items.map((button, index) => {
              return <ButtonCustom key={index}/>;
          })}
    </div>
    )
}

主要关注二义性menuActive/menuState和字符串定义后的{}块。还请注意Home组件上的"key“属性

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63094083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档