技术求助:Uncaught Error: object is not a function错误(涉及this.state)
问题原因
你代码里的错误出在buttonPressed方法里的this.setState= ({...})这一行:
setState是React组件提供的方法,需要通过调用的方式使用(加括号()),但你写成了赋值语句(用=把对象赋值给this.setState),这会把原本的setState函数覆盖成一个普通对象。- 当后续代码试图调用
this.setState时,它已经不是函数了,所以抛出object is not a function的错误。
解决方案
把赋值的等号去掉,改成调用方法的形式:
buttonPressed(input) { console.log(input) if (input == '='){ return this.calculateResult() } // 去掉多余的等号,正确调用setState方法 this.setState({ resultText : this.state.resultText + input }) }
额外优化建议
因为新状态resultText依赖于旧状态的值,推荐使用函数式更新的写法,避免React状态异步更新带来的潜在问题:
this.setState(prevState => ({ resultText: prevState.resultText + input }))
内容的提问来源于stack exchange,提问作者Puneet
相关产品推荐
相关产品推荐

