关于React “Cannot read property 'setState' of null” 的错误

来源:互联网 发布:邢台羊毛衫知乎 编辑:程序博客网 时间:2024/04/26 10:18

最近刚跟着阮一峰大神的博客小小学习了一下React,想试着用ES6语法实现一个简单的按钮功能的时候出现了有个困扰了我一下午的错误: 
error截图

网上搜了好久stackoverflow上也没找到能完全解决问题的方案,最后还是在这里找到了解决方法: 
原来是ES6中 this 只能在构造函数中使用了,因此this.setState()这个函数也就不能直接调用了。这个新特性的目的暂时我还不清楚原因总之把解决方法记下先:

class OnlyBt extends React.Component {  constructor(props) {    super(props);    /*关键就是这里,把要使用this的函数  在构造函数中用bind方法传入this*/     this.start = this.start.bind(this);     this.ready = this.ready.bind(this);     this.ok = this.ok.bind(this);     this.again = this.again.bind(this);    this.state = {func : this.start, keyWord : keyWords[key]};  }  start() {    key++;    this.setState({func : this.ready, keyWord : keyWords[key]});  }  ready() {    key++;    this.setState({func : this.ok, keyWord : keyWords[key]});  }  ok() {    key++;    this.setState({func : this.again, keyWord : keyWords[key]});  }  again() {    key = 0;    this.setState({func : this.start, keyWord : keyWords[key]});  }  render() {            return (<button className="btn btn-lg btn-default" onClick={this.state.func}>{this.state.keyWord}</button>);        }}        ReactDOM.render(<OnlyBt />, document.getElementById('content'));

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 144hz显示器 hz什么意思 52hz什么意思 90hz屏幕 90hz手机 90hz刷新率 50hz什么意思 mhz等于多少hz hz是什么意思 50hz多少瓦 75hz和60hz差距大吗 60hz屏有必要换成144hz h1z1怎么一边舔包一边动 hz是什么单位 120hz手机 120hz和144hz差别在哪 显示器hz 144hz什么意思 1hz等于多少秒 hz代表什么意思 hz和mhz 20000hz声音到底有多恐怖 144hz显示器用hdmi还是dp 2k144hz吃鸡要什么显卡才能带动 超声波25000hz在线试听 饶h 被h 莉萝h吧 h吧 三舞h吧 亚梦吧h福利吧 h手游汉化吧 杀犬吧h猛撞内壁 诞下龙种吧烛翻h 枢零吧h猛撞内壁 元尊h吧资源库 泗沧吧雨浩h冰帝 娜美和索隆h福利吧 h手游福利吧安卓 一起来h吧 h手游福利吧