Радио-кнопка загружает пол, но когда я не выбираю, радио-кнопка сохраняет как пустое - PullRequest
0 голосов
/ 20 октября 2019

Я только дошел до проверки, как это сохраняет значение. Тестировал на this.state.value, который меняется на Мужской или Женский (консоль), когда я касаюсь переключателя. Но когда кнопка «Мужчина» загружена в дизайн (и не выбрана). Значение остается пустым, поскольку я сохраняю его. Вот мой код:

Я пытался if(this.state.gender == 'Male') { this.state.value=="Male"} (сохранил this.state.gender в базу данных и получил его) Но это не сработало, оно принимает значение от {radio_props}

var radio_props = [
  { label: "Male", value: "Male" },
  { label: "Female", value: "Female" },
  { label: "TEST", value: "TEST" }
];

                      <RadioForm
                        radio_props={radio_props}
                        initial={0}
                        formHorizontal={true}
                        labelHorizontal={true}
                        buttonColor={"white"}
                        selectedButtonColor={"#0285cd"}
                        labelStyle={{ color: "black", marginRight: 15 }}
                        animation={false}
                        onPress={value => {
                          this.setState({ value });
                        }}
                      />

Так что я хочу, чтобы внутри RadioForm я мог использовать onLoad вместо OnPress. Я загружаю все данные Radioform с помощью this.state.gender == "Male" ? (initial={0} и == "Female" ? initial={1} и т. Д. (Слишком коротко)

Я использовал это https://www.npmjs.com/package/react-native-simple-radio-button

Спасибо за ваше время, очень надеюсь, что кто-то может датьхороший ответ (я новичок)

1 Ответ

0 голосов
/ 21 октября 2019

Исправил это следующим образом:

 updateGenderWithoutOnPress = () => {
    if (this.state.gender == "Male") {
      this.setState({ value: "Male" });
    } else if (this.state.gender == "Female") {
      this.setState({ value: "Female" });
    }
  };

  componentWillMount() {
    setTimeout(() => {
      //this.setState({ visibleModal: null });
      this.updateGenderWithoutOnPress();
    }, 2000);
  }

Пришлось установить тайм-аут, потому что this.state занимает секунду для загрузки и будет пустым, если я не использую этот таймер. Вот где проблема была

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...