在setInterval()中反应本机setState,然后setInterval执行错误

时间:2017-03-21 09:21:38

标签: javascript react-native

这是我的代码

componentDidMount() {
    let that = this;
    setInterval(() => {
        that.setState({number: 1});
    }, 2000);
}

我写了'let that = this;',但这也是错误的。它在2秒内执行不止一次。

1 个答案:

答案 0 :(得分:2)

为什么不在this中使用setInterval?您已使用fat arrow功能,因此您仍然可以在其中使用this

以下是示例代码:

constructor (props) {
    super(props)
    this.state = {
        number: 0
    } 
  }

componentDidMount(){
  setInterval(() => {
      this.setState({number: parseInt(this.state.number, 10) + 1 });
  }, 2000);

}

render() {
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center',}}>
      <Text>
       {this.state.number }
      </Text>
    </View>
  );
}

Expo Demo