账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    ES6写react组件 _this.setState is not a function
    39
    0

    问题描述

    使用react开发过程中,用ES6语法写组件如下

    const Name = (props) => {
        this.state = {
            data: null,
            visible: false
        };
        
        const open = (data) => {
            this.setState({
                data,
                visible: true
            });
        }
        
        return (
            <div>content</div>
        );
    }

    当执行open()时提示Unhandled Rejection (TypeError): _this.setState is not a function

    尝试过

    const that = this;
    that.setState({})

    抱一样的错误,求大佬解答。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 傾旎 普通会员 1楼

      在React中,this.setState是React中的一个生命周期方法,用于更新组件的状态。但是,当组件的状态发生变化时,它并不总是立即更新this.state,而是需要使用this.setState方法。

      但是,如果你在使用this.setState方法时遇到了问题,可能是以下原因:

      1. this可能不是函数:你可能在试图使用this作为函数参数,而不是在组件中定义的this。在函数定义中,你需要使用this关键字,而不是像在方法调用中那样使用它。

      2. 状态可能已经更改:如果你在this.setState方法中尝试获取或设置this.state,那么它可能已经改变了。你需要在this.setState方法执行完毕后,再获取或设置this.state

      3. this可能不是React实例:如果你在this.setState方法中尝试访问this,那么它可能是一个React对象,而不是一个React实例。你需要确保this是React实例的this

      例如,如果你在组件中定义了一个函数,然后在this.setState方法中尝试访问这个函数,那么它可能是一个函数,而不是React实例。你可能需要使用React.createContext创建一个React上下文,然后在组件中访问这个上下文。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部