javascript - 单击按钮时想要在 saveInfo() 函数内执行 disNone() 函数

标签 javascript reactjs react-native ecmascript-6 react-redux

我想在单击按钮时在 saveInfo() 内执行 disNone() : 错误:TypeError:无法读取未定义的属性“disNone”

import React, { Component } from 'react';

class Login extends Component {
constructor(props){
    super(props);

    this.state = {
        dispNone:"dispNone",
        message:"dispNone"
    };
    this.disNone = this.disNone.bind(this);
};

 disNone(){
    this.setState({
        dispNone: "dispNone",
        message:"dispBlock"
    });
}


 saveInfo(){
    this.disNone(); 
 }

render() {
    return (
       <div>
         // other code
          <button onClick={this.saveInfo}>Sign up</button>
       </div>
    );
  }
}

export default Login;

最佳答案

在构造函数中,除了this.disNone = this.disNone.bind(this)之外,还需要放入

this.saveInfo = this.saveInfo.bind(this);

该错误是因为 safeInfo 不知道 this 的含义,这会导致错误 disNone 未定义

编辑:我们在构造函数中执行此操作,因为我们只需绑定(bind)该函数一次。或者,您也可以将其写入 render 函数中,但这意味着每次 render 函数执行时,您都会重新绑定(bind)该函数,这是一种浪费。

第三种选择是在渲染函数内使用 () => this.saveInfo() ,这不需要在任何地方进行任何类型的绑定(bind),但同样,该函数必须是“每次 render 函数运行时创建”。

关于javascript - 单击按钮时想要在 saveInfo() 函数内执行 disNone() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46678028/

相关文章:

javascript - 如何在事件发生后使用 React 滚动到某个元素?

javascript - 如何更新react-redux中的状态?

javascript - 将nodejs对象存储在pug脚本标签内

javascript - 如何以不同的颜色显示文本的某些部分,即@和}之间的数据应该是不同的颜色

android - 如何根据设备分辨率在react-native中设置通知小图标

javascript - Prop 类型失败 : Invalid prop 'value' of type 'object' supplied to 'TextInput'

android - 如何在 native react 中对 TextInput 应用点击事件

javascript - 水平滚动 - 就像 github

javascript - 编写一个更新/保存的 Mongoose 方法?

javascript - JS内置数字求和函数