ES6写react组件 _this.setState is not a function

问题描述

使用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({})

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


慕尼黑8549860
浏览 2492回答 2
2回答

繁星淼淼

这种写法就是stateless组件了,你都没继承react的方法,所以没有生命周期,没有render,没有state,setState的方法肯定也没有,题主搜一下stateless组件看看就清楚了

精慕HU

你这样写是无状态组件,没有生命周期,当然没有react.component的方法,你需要改为class&nbsp;Name&nbsp;extends&nbsp;React.Component(){ &nbsp;constructor()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;super()&nbsp;&nbsp;&nbsp;&nbsp;this.state&nbsp;=&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;render&nbsp;(){} }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

React.JS