Метод onModalClose вызывается всякий раз, когда значение изменяется в IOSact-native-modal-selector - PullRequest
0 голосов
/ 16 января 2020

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.

...