【发布时间】:2017-10-04 18:13:43
【问题描述】:
当我从列表中选择一个项目时,我的react-native-autocomplete-input 列表似乎没有关闭。
let Location = (props) => (
<View style={styles.formItem}>
<Autocomplete
data={props.autocompleteResults.predictions}
defaultValue={props.locationInput.toString()}
onChangeText={
text => {
props.updateLocationInput(text)
props.getAutocompleteResults(text)
}
}
renderItem={place => (
<TouchableOpacity
style={{
height: 44,
flex: 1,
justifyContent: 'center',
...styles.label,
borderRadius: 8
}}
onPress={() => {
console.log(place)
props.updatePlace(place)
props.updateLocationInput(place.description)
}}>
<Text numberOfLines={1}>{place.description}</Text>
</TouchableOpacity>
)}
inputContainerStyle={{ borderWidth: 0 }}
style={{
height: 44,
borderRadius: 8,
backgroundColor: '#FFFFFF',
alignSelf: 'stretch',
paddingLeft: 10,
position: 'relative',
...styles.label
}}
/>
</View>
)
Location.propTypes = {
locationInput: React.PropTypes.string.isRequired,
updateLocationInput: React.PropTypes.func.isRequired,
getAutocompleteResults: React.PropTypes.func.isRequired,
autocompleteResults: React.PropTypes.object.isRequired,
updatePlace: React.PropTypes.func.isRequired
}
Location = connect(
mapStateToProps,
mapDispatchToProps
)(Location)
这就是Location 组件的使用方式。 Container 是一个原生组件:
<Container style={styles.container}>
<ScrollView keyboardShouldPersistTaps={true}>
<Categories />
<View style={{ zIndex: 2, position: 'relative' }}>
<Location />
</View>
<Keywords />
<Button block style={styles.wideButton} onPress={() => props.toggleMenu()}>
<Text>GO</Text>
</Button>
</ScrollView>
</Container>
Location 组件位于ScrollView 内,但是当我取出滚动视图时问题仍然存在。我也完成了滚动视图修复<ScrollView keyboardShouldPersistTaps={true}> 是什么让列表永远不会关闭?
【问题讨论】:
-
react-native-autocomplete-input 的版本?
-
@Codesingh 版本 3.1.2
-
把它降到 v1.1.2
-
你在安卓上试试吗?
-
@Codesingh iOS 模拟器...刚刚想到...也许我应该在真实设备上尝试一下
标签: javascript css reactjs react-native jsx