首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"Function is not defined“onClick function in a component in ReactJs?

"Function is not defined“onClick function in a component in ReactJs?
EN

Stack Overflow用户
提问于 2019-05-11 14:13:41
回答 2查看 69关注 0票数 1

我已经在reactJs中创建了come组件,由两个按钮组成,它们处理每个onClick函数,但当我运行代码"myfunction is not defined“时,出现错误。我想在按钮触发时将页面重定向到指定的地址。我的代码出了什么问题?

代码语言:javascript
复制
import React, { Component } from 'react';
import { Link } from 'react-router-dom';

class MainMenu extends React.Component {
  constructor(props){
    super(props);
    this.slotClick = this.slotClick.bind(this);
    this.freqClick = this.freqClick.bind(this);
  }
   slotClick = (e) => {
    e.preventDefault();    
  }
   freqClick = (e) => {
    e.preventDefault();
  }
  render() {
    return (
      <div>   
        <input type="button" value="By Time Slot" onClick={ slotClick } />
        <input type="button" value="By Frequency" onClick={ freqClick } />
      </div>
    )
  }
}

export default MainMenu;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-11 14:15:02

您需要从this访问这些函数。你也不需要bind(),因为这些函数都是箭头函数。

代码语言:javascript
复制
render() {
    return (
      <div>   
        <input type="button" value="By Time Slot" onClick={ this.slotClick } />
        <input type="button" value="By Frequency" onClick={ this.freqClick } />
      </div>
    )
  }
票数 3
EN

Stack Overflow用户

发布于 2019-05-11 14:21:45

您需要在class component中使用this

当我们使用arrow function时,我们不需要绑定函数

代码语言:javascript
复制
import React, { Component } from 'react';
import { Link } from 'react-router-dom';

class MainMenu extends React.Component {
  constructor(props){
    super(props);
  }
   slotClick = e => {
    e.preventDefault();    
  }
   freqClick = e => {
    e.preventDefault();
  }
  render() {
    return (
      <div>   
        <input type="button" value="By Time Slot" onClick={this.slotClick()} />
        <input type="button" value="By Frequency" onClick={this.freqClick()} />
      </div>
    )
  }
}

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

https://stackoverflow.com/questions/56087736

复制
相关文章

相似问题

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