当前位置: 首页 > 面试题库 >

如何在同一onClick事件ReactJS上调用多个函数

红弘盛
2023-03-14
问题内容

我有这个功能,当我点击<li>标签时,我想调用两个功能,onClick={handleProjectSelection(project)}一个来自父组件的props的处理程序功能,还有这个功能onClick={() => this.setState({ showingProjectSelector: false })}

  renderDropdown () {
    const { displayDropdown, projects, handleProjectSelection } = this.props
    if (this.state.showingProjectSelector && displayDropdown) {
      const projectsList = projects.map((project) => (
        <li className='u-cursor--pointer u-font-size--12px'
          key={project.get('id')}
          onClick={handleProjectSelection(project)} >
          <i className='fa fa-square u-font-size--10px' style={{color: project.get('color')}}></i>
          {project.get('name')}
        </li>
      ))

如何调用这两个函数?这是父组件的处理函数

  handleProjectSelection = (project) => () => {
    this.setState({
      projectToAdd: project.get('id'),
      projectToAddColor: project.get('color'),
      projectToAddName: project.get('name') === 'default' ? 'No' : project.get('name').substring(0, 2)
    })
  }

问题答案:

这样写:

onClick={() => {
   handleProjectSelection(project);
   anotherfunctionCall();
}}

或创建一个函数,将其用作单击处理程序。在该函数内部调用其他两个函数,如下所示:

onClick={this.handleClick}

handleClick(){
   function1();
   function2();
}

请参阅使用箭头功能的两种方法:

1-简洁的机身: () => /*single expression*/

2块体 () => {}

在内部的程序块主体{}(函数的主体)中,我们可以执行任意数量的任务。

像这样:

onClick={() => {
   fun1();
   fun2();
   fun3();
   fun4();
   ....
   funN();
}}


 类似资料:
  • 问题内容: 我知道在香草js中,我们可以做到 在ReactJS中调用onClick的两个函数等效于什么? 我知道调用一个函数是这样的: 问题答案: 将两个函数调用包装在另一个函数/方法中。这是该想法的几个变体: 1)分开的方法 或使用ES6类: 2)内联 或等效于ES6:

  • 问题内容: 有什么方法可以使用html属性调用多个JavaScript函数吗? 问题答案: onclick=”doSomething();doSomethingElse();” 但实际上,最好不要使用Java,而是通过Javascript代码将事件处理程序附加到DOM节点。这被称为不引人注目的javascript。

  • 问题内容: 我是python和Flask的新手。我有一个带按钮的Flask Web App。当我单击按钮时,我想执行python方法而不是Javascript方法。我怎样才能做到这一点? 我看过python的示例,它使用这样的表单标签将我重定向到新页面 但我不希望它将我重定向到新页面。我只希望它执行python方法。 我正在为Raspberry Pi机器人汽车制作这个。当我按下前进按钮时,我希望它

  • 在React router中,我必须单击和onClick属性,如下所示 属性导航到关于路线 当我给超时内嵌函数调用点击,其导航到新页面,并在某个时候状态得到更新,导致显示以前的名称,直到状态更新为新名称。 是否有一种方法,只有在onClick函数中的代码执行之后,它才会导航到新路由。 您可以[在这里]获取整个代码(https://github.com/pushkalb123/basic-react

  • 我正在使用JSF 2.0创建页面: 我期待在单击复选框时被调用。但是,加载页面时调用一次setMyCheckboxValue()。 如果我写 每次点击都会收到警报。 我的问题是:当我收到警报时,为什么每次onclick事件都不调用? 注意:我也尝试过AJAX,但复选框保持不变。

  • 问题内容: 我正在使用reactjs路由器中的Link组件,但无法使onClickevent运行。这是代码: 这是做这件事的方式还是另一种方式? 问题答案: 您以字符串形式传递,也意味着立即执行。 尝试