单选按钮加载性别,但当我不选择时,单选按钮保存为空

时间:2019-10-20 16:31:47

标签: react-native radio-button

我只是检查了它如何保存值。在this.state.value上进行测试,当我触摸单选按钮时,该按钮将变为Male或Female(控制台)。但是当在设计中加载了“公”按钮时(未选中)。保存时该值保持为空。这是我的代码:

我试图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。我用this.state.gender == "Male" ? (initial={0}== "Female" ? initial={1}等加载了整个Radioform数据(太短了)

我使用了这个https://www.npmjs.com/package/react-native-simple-radio-button

谢谢您的时间,真的希望有人能给出一个不错的答案(我是初学者)

1 个答案:

答案 0 :(得分:0)

通过以下操作解决了该问题:

 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需要一秒钟的加载时间,因此无法设置超时,如果我不使用此计时器,它将为空。那就是问题所在