Javascript react native中的组件在RefreshControl中更新自身

Javascript react native中的组件在RefreshControl中更新自身,javascript,ios,react-native,Javascript,Ios,React Native,所以我尝试在我的应用程序中实现一个拉刷新功能。我已经在我的Android平台上成功地实现了这一点,在模拟器中,如果我按下(鼠标),刷新指示器将保持可见,直到我离开鼠标点击,组件也将在鼠标点击之前不会更新。当我离开鼠标点击时,它将更新组件视图,刷新指示器将在2秒内隐藏。在ios中,类似的事情并没有像预期的那样正常工作,所以当我拉下屏幕时,组件会以某种方式更新,即使我没有留下鼠标点击。我在谷歌上搜索了一下,但可能找不到合适的搜索关键字 下面是我的代码片段。提前谢谢 render() { const

所以我尝试在我的应用程序中实现一个拉刷新功能。我已经在我的Android平台上成功地实现了这一点,在模拟器中,如果我按下(鼠标),刷新指示器将保持可见,直到我离开鼠标点击,组件也将在鼠标点击之前不会更新。当我离开鼠标点击时,它将更新组件视图,刷新指示器将在2秒内隐藏。在ios中,类似的事情并没有像预期的那样正常工作,所以当我拉下屏幕时,组件会以某种方式更新,即使我没有留下鼠标点击。我在谷歌上搜索了一下,但可能找不到合适的搜索关键字

下面是我的代码片段。提前谢谢

render() {
const { loadingCart } = this.props;
return (
  <View style={styles.container}>
    <ScrollView
      style={styles.scrollView}
      contentContainerStyle={styles.contentContainer}
      contentInsetAdjustmentBehavior="automatic"
      horizontal={false}
      refreshControl={this._renderRefreshingControl()}
    >
      {this._renderProduct()}
      {loadingCart && this._renderLoadingCart()}
    </ScrollView>
    {this._renderCartButton()}
    {this._renderAddToCartPopover()}
  </View>
);
})

我希望我能够澄清我的问题:-)

试试这个:

_handleRefreshingControlVisibility = () => {
    this.setState({ refreshing: true });

    setTimeout(function() {
        // here do what you want
    }, 1500);
};

因此,
RefreshControl
按预期工作,我的渲染方法中有一个
loading
标志,当
refreshing
this.setState({refreshing:true,})
最终删除加载标志解决了我的问题

_handleRefreshingControlVisibility = async () => {
const { fetchProductByCode, navigation } = this.props;
this.setState({
  refreshing: true,
});

const resultAction = await fetchProductByCode('38186');

if (resultAction.type === PRODUCT_FETCH_SUCCESS || resultAction.type === PRODUCT_FETCH_FAILURE) {
  this.setState({
    refreshing: false,
  });
};
_handleRefreshingControlVisibility = () => {
    this.setState({ refreshing: true });

    setTimeout(function() {
        // here do what you want
    }, 1500);
};