React Native RefreshControl 未在 iOS 上触发 onRefresh
Posted
技术标签:
【中文标题】React Native RefreshControl 未在 iOS 上触发 onRefresh【英文标题】:React Native RefreshControl not triggering onRefresh on iOS 【发布时间】:2018-12-18 13:14:40 【问题描述】:我的PersonScreen
有以下(简化的)设置,导航到AppointmentScreen
:
class PersonScreen
state =
refreshing: false,
;
_onRefresh = () =>
this.setState( refreshing: true );
this._fetchStuff()
.then(() =>
this.setState( refreshing: false );
;
;
render()
return (
<View style=CONTAINER>
<ScrollView
keyboardShouldPersistTaps="handled"
refreshControl=<RefreshControl refreshing=refreshing onRefresh=this._onRefresh />
<ListItem
key=ITEM.id
title=moment(DATETIME).format(FORMAT))
onPress=() =>
navigation.navigate('AppointmentScreen',
appointment: ITEM,
refreshParent: this._onRefresh,
);
/>
</ScrollView>
</View>
);
在AppointmentScreen
上,您做出一些选择,然后返回执行以下操作:
const refreshParent = navigation.state.params;
refreshParent();
navigation.goBack();
这不起作用的唯一情况是在 ios 上。只要我去PersonScreen
并刷新它就可以工作。但是,如果我从PersonScreen
转到AppointmentScreen
并返回它确实会触发refreshParent
(本质上是_onRefresh
),但是任何下拉以触发RefreshControl
s onRefresh
函数的尝试都会失败.我还在_onRefresh
中添加了一些console.log
,但它甚至没有输出任何内容。
如果我的AppointmentScreen
看起来像这样:
const refreshParent = navigation.state.params;
//refreshParent();
navigation.goBack();
一切正常。所以我遇到了以某种方式调用refreshParent
然后返回使RefreshControl
中的_onRefresh
在PersonScreen
中的以下_onRefresh
不起作用。
有没有人知道为什么会这样?如前所述,我只在 iOS 上体验过这一点,但在 iOS 模拟器和设备上始终如此。
【问题讨论】:
【参考方案1】:你能创建一个博览会版本吗?
另外,你的刷新是refreshing=refreshing
应该是refreshing=this.state.refreshing
【讨论】:
谢谢。我将研究创建一个 Expo 版本。但它实际上并不是用 Expo 构建的。 你试过了吗?改变刷新?以上是关于React Native RefreshControl 未在 iOS 上触发 onRefresh的主要内容,如果未能解决你的问题,请参考以下文章
react native 增加react-native-camera
更新 react-native-maps 以使用 create-react-native-app
react native 增加react-native-storage
React-Native 和 Expo:create-react-native-app 和 react-native init 之间的区别
什么是 react-native-cli 和 @react-native-community/cli?
React Native - 当 react-native 版本 > 0.55 时,无法通过 react-native-cli 创建新项目