react-native - React-Native 刷新 Flatlist 不适用于 Android
问题描述
当用户按下由 gpsDataSource 填充的平面列表时
this.state = {
gpsDataSource: [
{ selected: false, title: I18n.t('Settings_precise_11f271'), code: 'precise' },
{ selected: false, title: I18n.t('Settings_approximate_b23bbf'), code: 'approximate' },
{ selected: true, title: I18n.t('Settings_off_810357'), code: 'off' },
],
};
通过填充
<FlatList
data={this.state.gpsDataSource}
extraData={this.state.refresh}
renderItem={({ item, index }) =>
<View>
{(Platform.OS === 'android') ?
<TouchableNativeFeedback onPress={() => this._onGPSPress(item)} background={TouchableNativeFeedback.SelectableBackground()} >
<View>
<MenuItem
item={item}
navigation={this.props.navigation}
/>
</View>
</TouchableNativeFeedback>
:
<TouchableHighlight
onPress={() => this._onGPSPress(item)}
underlayColor='gray'>
<MenuItem
item={item}
onPress={() => this._onGPSPress(item)}
navigation={this.props.navigation}
/>
</TouchableHighlight>
}
</View>
}
keyExtractor={(item, index) => index.toString()}
/>
用户选择一个项目
_onGPSPress(_click) {
this.state.gpsDataSource.map(element => {
if (element.code == _click.code)
{console.log("match"); element.selected = true; return element }
else { console.log("no match");element.selected = false ; return element }
});
this.setState({
refresh: !this.state.refresh
})
//Todo: appropriate server calls
}
平面列表在 iOS 上刷新,但在 Android 上没有刷新(顺便说一下,两个平台的 Menuitem 是相同的。
我怎样才能让平面列表(一个选定的蓝点在菜单项中)为 Android 刷新?
解决方案
推荐阅读
- docker - 在 Github Actions 上从 package.json 安装私有 github 包
- javascript - jQuery选择字符串上的第二个元素
- python - 迭代地平均特定列表元素?
- python-3.x - 为什么这个函数被认为是队列的实现?
- javascript - 对 JavaScript 数组中的相同值进行分组
- axapta - Dynamics 365 FO 数据实体:临时表为空
- intel - 如何从 MPSS 4.4.1 修复 modprobe 错误
- reactjs - 懒惰渲染孩子
- batch-file - How to output multiple lines from a FINDSTR to a variable
- cordova - Fabric.js + IonicV3 - 'touch:gesture' 事件