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

响应切换 ID

响应切换 ID

皈依舞 2022-09-29 16:31:05
我有一个切换潜水的问题。这可能是一件小事,但是当我第一次单击它(并且面板展开)时,我找不到它起作用的原因,但是当再次单击时,它不会关闭。也许有人可以理解为什么我第二次点击该项目时,id没有与元素“e”一起发送?多谢!class FlexPanel extends Component {  constructor(props) {    super(props);    this.state = {      toggle1: false,      toggle2: false,      toggle3: false,    };  }  render() {    const toggleOpen = (e) => {      const id = e.target.id;      const toggleId = `toggle${id}`;      let toggleItem = this.state[toggleId];      this.setState({        [toggleId]: !toggleItem,      });    };    const { toggle1, toggle2, toggle3 } = this.state;    console.log(toggle1);    return (      <div className="panels">        <div          id={1}          className={`panel panel1 ${toggle1 ? "open open-active" : "closed"} `}          onClick={(e) => {            toggleOpen(e);          }}        >          <p>Consultes</p>          <p>Teràpies</p>          <p>Recolzament</p>        </div>        <div          id={2}          className={`panel panel2 ${toggle2 ? "open open-active" : "closed"} `}          onClick={(e) => {            toggleOpen(e);          }}        >          <p>Videoconsultes</p>          <p>en grup</p>          <p>i individuals</p>        </div>        <div          id={3}          className={`panel panel3 ${toggle3 ? "open open-active" : "closed"} `}          onClick={(e) => {            toggleOpen(e);          }}        >          <p>Jordi</p>          <p>Arjó</p>          <p>Teràpies</p>        </div>      </div>    );  }}export default FlexPanel;
查看完整描述

1 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

在你需要改变toggleOpen()const id = e.target.id;const id = e.currentTarget.id

在此处查看修改后的代码

https://codesandbox.io/s/awesome-jennings-pl2yw?fontsize=14&hidenavigation=1&theme=dark

有关 和 之间的区别的更多信息,请参阅官方文档e.targete.currentTarget


查看完整回答
反对 回复 2022-09-29
  • 1 回答
  • 0 关注
  • 77 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号