繁体   English   中英

如何在同一个按钮上使用 onClick 调用这两个函数?

[英]how do I call both of these functions with onClick on the same button?

可能是一个愚蠢的问题,但我正在使用 aa 插件来平滑滚动到一个元素,我在边栏上有一个按钮,我想使用这个插件,但我也希望边栏在我单击按钮时关闭。 我有一个 function 关闭了我通过道具传递的侧边栏,但我不太确定如何将两者结合起来使用一个按钮。 基本上,我怎样才能将这两个按钮合二为一..

import React from "react"
import "./sidebar.css"
import scrollTo from "gatsby-plugin-smoothscroll"

const Sidebar = props => {

 return (
<nav className={sidebar}>
  <ul>
    <li>
      <button onClick={props.hide}>Home</button>
    </li>
    <li>
      <button onClick={() => scrollTo("#home-page")}></button>
    </li>
  </ul>
</nav>

)
}

你只需要这样做:

const Sidebar = props => {
  const handleClick = e => {
    props.hide(e);
    scrollTo("#home-page");
  };

  return (
    <nav className={sidebar}>
      <ul>
        <li>
          <button onClick={handleClick}>Home</button>
        </li>
      </ul>
    </nav>
  );
};

您可以像这样调用这两个函数:

<button 
  onClick={(event) => {
    scrollTo("#home-page");
    props.hide(event)
  }}
>
  Home Page
</button>

你只需要定义事件单独调用它 onClick 的按钮。

import React from "react"
import "./sidebar.css"
import scrollTo from "gatsby-plugin-smoothscroll"
.
.
.

const Sidebar = props => {
  const ClickTheHandle = event => {
    props.hide(event);
    scrollTo("#home-page");
  };

  return (
    <nav className={sidebar}>
      <ul>
        <li>
          <button onClick={ClickTheHandle}>Home Page</button>
        </li>
      </ul>
    </nav>
  );
};

试试这个代码:

import React from "react"
import "./sidebar.css"
import scrollTo from "gatsby-plugin-smoothscroll"

const Sidebar = props => {
  const handleClick = e => {
    scrollTo("#home-page");
    props.hide(e.target);
  };

  return (
    <nav className={sidebar}>
      <ul>
        <li>
          <button onClick={handleClick}>Home</button>
        </li>
      </ul>
    </nav>
  );
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM