react-native - 无法访问组件函数内的setState

时间:2017-07-13 13:34:27

标签: reactjs react-native state

我正在学习反应原生,现在我因为这个错误而被困在州课:

_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);
  }
...

我做错了什么?

2 个答案:

答案 0 :(得分:8)

handleStartStopClick不是您的类的实例的上下文调用

this。您可以通过将.bind(this)添加到作为单击处理程序传递的函数来避免这种情况。

<TouchableHighlight onPress={this.handleStartStopClick.bind(this)}>

答案 1 :(得分:3)

试试这个:

 this.setState({timeElapsed : (new Date() - startTime)})

您必须使用 bind(this)

在构造函数中定义您的函数
handleStartStopClick = () => {...}