Please I need help.
I’ve Googled my eyes out but cannot fix this error. It happens each time I select a picker item.
I’ve also gone through Mosh’s code… Please help.
MY SOURCE CODE FOR AppPickerjs
// Import resources
import React, { useState } from ‘react’;
import { View, StyleSheet, TouchableWithoutFeedback, Modal, Button, FlatList } from ‘react-native’;
import { MaterialCommunityIcons } from ‘@expo/vector-icons’;
// Import custom files
import colors from ‘…/config/colors’;
import defaultStyles from ‘…/config/defaultStyles’;
import CustomText from ‘./CustomText’;
import CustomPickerItems from ‘./CustomPickerItems’;
// Component function
function CustomPicker({ icon, items, onSelectItem, placeholder, selectedItem }) {
// Set function state
const [modalVisible, setModalVisible] = useState(false);
return (
<React.Fragment>
<TouchableWithoutFeedback onPress={() => setModalVisible(true)}>
<View style={styles.container}>
{icon && <MaterialCommunityIcons style={styles.icon} name={icon} size={30} />}
{/* <CustomText style={styles.text}>{selectedItem ? selectedItem : placeholder}</CustomText> */}
{selectedItem ? (
<CustomText style={styles.text}>{selectedItem.label}</CustomText>
) : (
<CustomText style={styles.placeholder}>{placeholder}</CustomText>
)}
<MaterialCommunityIcons color={defaultStyles.colors.grey} name='chevron-down' size={30} />
</View>
</TouchableWithoutFeedback>
<Modal visible={modalVisible} animationType='slide'>
<Button title='Close' onPress={() => setModalVisible(false)} />
<FlatList
data={items}
keyExtractor={item => item.value.toString()}
renderItem={({ item }) =>
<CustomPickerItems
label={item.label}
onPress={() => {
setModalVisible(false);
onSelectItem(item);
// console.log(item);
}}
/>
}
/>
</Modal>
</React.Fragment>
);
}
// Comoponent styles
const styles = StyleSheet.create({
container: {
backgroundColor: colors.lightgrey,
borderRadius: 25,
flexDirection: 'row',
width: '100%',
padding: 15,
marginVertical: 10,
},
icon: {
color: colors.grey,
marginRight: 10,
},
text: {
flex: 1,
},
placeholder: {
flex: 1,
color: defaultStyles.colors.grey
},
})
// Export component
export default CustomPicker;