React Native ProgressBarAndroid setState无法正常工作

时间:2018-01-09 16:40:03

标签: javascript android reactjs

我无法通过以下代码解决问题。我正在尝试在ProgressBarAndroid上更改道具动画,并使其每秒切换一次。如果我在构造函数中将loading设置为true,则代码按预期工作,但如果将其设置为false(这是我想要的,我不希望它立即开始动画),则不会。当它设置为false时,进度条始终保持不可见。有什么想法吗?

import React, { Component } from 'react';
import { ProgressBarAndroid } from 'react-native';

export default class App extends Component {
  constructor(props) {
    super(props);
    this.state = {loading: false}; // works if it is set to true here instead

    // Toggle the state every second
    setInterval(() => {
      this.setState({loading: !this.state.loading});
    }, 1000);
  }
  render() {
    return (
        <ProgressBarAndroid animating={this.state.loading}></ProgressBarAndroid>
    );
  }
}

1 个答案:

答案 0 :(得分:1)

这实际上是几个星期前我与ProgressBarAndroid的问题。一旦作为false启动,我就无法将其设置为真。

我当时的快速而肮脏的解决方案就是将状态变化移到animating道具之外。

在你的情况下,改变这个:

<ProgressBarAndroid animating={this.state.loading}></ProgressBarAndroid>

到此:

<View>
  { this.state.loading ? <ProgressBarAndroid/> : null }
</View>

并确保还包含View中的react-native