我无法通过以下代码解决问题。我正在尝试在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>
);
}
}
答案 0 :(得分:1)
这实际上是几个星期前我与ProgressBarAndroid
的问题。一旦作为false
启动,我就无法将其设置为真。
我当时的快速而肮脏的解决方案就是将状态变化移到animating
道具之外。
在你的情况下,改变这个:
<ProgressBarAndroid animating={this.state.loading}></ProgressBarAndroid>
到此:
<View>
{ this.state.loading ? <ProgressBarAndroid/> : null }
</View>
并确保还包含View
中的react-native
。