我正在学习反应原生,现在我因为这个错误而被困在州课:
_this2.setState is not a function.
这是当前的代码块。
...
export default class StopWatch extends Component {
constructor(props){
super(props);
this.state = {
timeElapsed: null
}
}
handleStartStopClick(){
var startTime = new Date();
setInterval(() => {
this.setState(previousState => {
return {timeElapsed:new Date() - startTime};
});
}, 100);
}
...
我做错了什么?
答案 0 :(得分:8)
handleStartStopClick
不是您的类的实例的上下文调用 this
。您可以通过将.bind(this)
添加到作为单击处理程序传递的函数来避免这种情况。
<TouchableHighlight onPress={this.handleStartStopClick.bind(this)}>
答案 1 :(得分:3)
试试这个:
this.setState({timeElapsed : (new Date() - startTime)})
您必须使用 bind(this) 或
在构造函数中定义您的函数handleStartStopClick = () => {...}