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

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

阅读 3.8k
2 个回答

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

你这样写是无状态组件,没有生命周期,当然没有react.component的方法,你需要改为

class Name extends React.Component(){
 constructor() {
    super()
    this.state = {
      
    }
  }
   render (){}


}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题