react-native - 在 react-native 中打开时下拉选择器项目不可点击
问题描述
在此处输入代码我正在以本机反应构建应用程序,并且我面临下拉选择器项目选择的问题。当我们打开下拉选择器时,项目会显示,但是当我们尝试选择任何项目时,则无法选择它。如果我们将高度设置为下拉视图,那么它可以正常工作。如果我们删除高度并为视图设置“zIndex”,那么它再次无法正常工作。请帮助找到任何解决方案。
提前致谢。
<View style={styles.root}>
<ImageBackground source={require('../assets/background.png')} style={styles.image1}>
<View style={{ position: "relative", zIndex: 1 }}>
{shouldShow ? (
<View style={styles.fullWidthView}>
<View style={styles.halfWidthView}>
<Text style={styles.blackText}>Date From</Text>
<View style={styles.inputStyle}>
<TouchableOpacity
onPress={showDatepicker}>
<Text style={{ fontSize: 15 }}>{selectedDate2}</Text>
</TouchableOpacity>
{show && (
<DateTimePicker
testID='dateTimePicker'
timeZoneOffsetInMinutes={0}
value={date}
mode={mode}
is24Hour={true}
display='default'
onChange={onChange}
/>
)}
</View>
</View>
<View style={styles.halfWidthView}>
<Text style={styles.blackText}>Date To</Text>
<View style={styles.inputStyle}>
<TouchableOpacity
onPress={showDatepicker}>
<Text style={{ fontSize: 15 }}>{selectedDate}</Text>
</TouchableOpacity>
{show && (
<DateTimePicker
testID='dateTimePicker'
timeZoneOffsetInMinutes={0}
value={date}
mode={mode}
is24Hour={true}
display='default'
onChange={onChange}
/>
)}
</View>
</View>
</View>
) : null}
</View>
<View style={{height: 100, position: "relative", zIndex: 10000 }}>
{shouldShow ? (
<View style={styles.fullWidthView}>
<View style={styles.halfWidthView}>
<Text style={styles.blackText}>Leave Status</Text>
<View style={{
width: 150,
fontSize: 15,
position: 'relative',
zIndex:90000
}}>
<DropDownPicker
items={leaveStatusItems}
placeholder='Select status'
labelStyle={{ color: '#000', fontSize: 15 }}
placeholderStyle={{ color: '#000' }}
containerStyle={{
height: 40,
flexDirection: 'column'
,zInde:450000
}}
style={{ color: '#000', fontSize: 15, position:'relative'}}
itemStyle={{
justifyContent: 'flex-start',
height: 35, fontSize: 15
}}
dropDownStyle={{ backgroundColor: '#fafafa' }}
onChangeItem={item => setStatus(item.value)}
defaultValue={status}
/>
</View>
</View>
<View style={styles.halfWidthView}>
<Text style={styles.blackText}>Leave Type</Text>
<View style={{
width: 150,
fontSize: 15
}}>
<DropDownPicker
items={leaveTypeItems}
placeholder='Select Type'
labelStyle={{ color: '#000', fontSize: 15 }}
placeholderStyle={{ color: '#000' }}
containerStyle={{
height: 40,
flexDirection: 'column',
}}
style={{ color: '#000', fontSize: 15, position:'relative',zInde:250000 }}
itemStyle={{
justifyContent: 'flex-start',
height: 35, fontSize: 15
}}
dropDownStyle={{ backgroundColor: '#fafafa' }}
onChangeItem={item => setType(item.value)}
defaultValue={type}
/>
</View>
</View>
</View>
) : null}
</View>
<View style={{ flex: 1, flexDirection: 'column', justifyContent: 'center', alignItems: 'center', position: 'relative', zIndex: 3 }}>
<Text style={styles.orangeBoldText}>Recent Leaves:-</Text>
<FlatList style={styles.flatList}
data={leaveList}
keyExtractor={(item, index) => index.toString()}
renderItem={itemData => (
<View style={styles.view3}>
<Text style={styles.orangeBoldText}>{itemData.item.username}</Text>
<View style={styles.horizontalView}>
<Text style={styles.grayText}>Subject :</Text>
<Text style={styles.grayText}>{itemData.item.title.toString().replace(itemData.item.username, "").replace(":", "").replace(" ", "")}</Text>
</View>
<View style={styles.horizontalView}>
<Text style={styles.grayText}>Date :</Text>
<View style={styles.innerHorizontalView2}>
<Text style={styles.grayText}>{itemData.item.startDate.toString().split(" ")[0]}</Text>
</View>
</View>
<View style={styles.horizontalView}>
<Text style={styles.grayText}>Leave Type :</Text>
<View style={styles.innerHorizontalView2}>
<Text style={styles.grayText}>{itemData.item.leaveTypeName}</Text>
</View>
<View style={styles.innerHorizontalView}>
<View style={styles.greenBackground}>
<Text style={styles.whiteText}>{itemData.item.leaveStatusName}</Text>
</View>
</View>
</View>
</View>
)}></FlatList>
</View>
</ImageBackground>
</View>
解决方案
尝试使用可触摸的不透明度和 onPress 事件来包装项目,并确保您正在传递道具,并且对于代码,请确保将“zIndex”而不是“zInde”放在下拉选择器中
<DropDownPicker
items={leaveTypeItems}
placeholder='Select Type'
labelStyle={{ color: '#000', fontSize: 15 }}
placeholderStyle={{ color: '#000' }}
containerStyle={{
height: 40,
flexDirection: 'column',
}}
style={{ color: '#000', fontSize: 15,
position:'relative',zIndex:250000 }}
itemStyle={{
justifyContent: 'flex-start',
height: 35, fontSize: 15
}}
dropDownStyle={{ backgroundColor: '#fafafa' }}
onChangeItem={item => setType(item.value)}
defaultValue={type}
/>
推荐阅读
- ansible - Play 之间的 Ansible Playbook 错误处理
- excel - 显示序列号而不将点视为小数分隔符
- html - 复杂表单元素对齐
- spring - 通过控制器持久化时如何使用主键填充模型
- google-apps-script - GAS 所有触发器突然禁用。为什么?
- microsoft-graph-api - 为什么成员无法在 Teams 的群聊聊天中收到来自其他人的消息
- kubernetes-ingress - Kuberenetes Ingress - 将特定 API 列入白名单
- java - 在 Hibernate 中检索与 BigInteger 映射的属性时出现问题
- delphi - Tobject内存地址保留/释放
- c# - 在 asp net core 中将日期与 MongoDb 进行比较的最佳方法是什么