react-native-modal-selector
ведет себя по-другому на IOS platform
, но работает нормально Android platform
, но встроенный метод onModalClose
вызывает все время, когда я выбираю значение в модальном режиме. он должен вызываться на последнем узле данных.
<ModalSelector
selectStyle={{ borderWidth: 0 }}
selectTextStyle={{ color: "#ffffff" }}
data={this.filterData()}
visible={this.state.visible}
animationType="fade"
optionTextStyle={{ fontSize: 20 }}
labelExtractor={item => item.categoryName}
initValue={
!this.state.categorytext && this.state.visible ? "" : "Choose Category"
}
onModalClose={() => this.onModalclose()}
keyExtractor={item => item.categoryId}
closeOnChange={!this.state.visible ? true : false}
backdropPressToClose={true}
scrollViewAccessibilityLabel={"Scrollable options"}
cancelButtonAccessibilityLabel={"Cancel Button"}
cancelButtonAccessible={false}
cancelContainerStyle={{ opacity: 0 }}
style={{
width: "50%",
borderWidth: 0,
marginVertical: 5
}}
onChange={option => {
this.setState({
visible: option.subCategory.length == 0 ? false : true,
selectedCategoryid: option.categoryId,
stopFunctioncalling: false,
selectedCategoryname: option.categoryName,
imageUrl: option.imageUrl,
Heading: option.categoryName
});
}}
// optionContainerStyle = {{backgroundColor:theme.CONTAINER_BACKGROUND_COLOR}}
initValueTextStyle={styles.input2}
/>;
this.filterData()
возвращает дочерний элемент данных, выбранных вами из модального режима. данные - это структура как древовидная структура. модал должен быть открыт до тех пор, пока data
не имеет дочернего элемента subcategory
.