我只是检查了它如何保存值。在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
谢谢您的时间,真的希望有人能给出一个不错的答案(我是初学者)
答案 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
需要一秒钟的加载时间,因此无法设置超时,如果我不使用此计时器,它将为空。那就是问题所在