我想做这样的事情:
int _radioValueGender == _radioValueGender
void setRadioValueGender(DocumentSnapshot document) {
if (document['gender']=='female') {
return _radioValueGender == 0;
}
else {
return _radioValueGender == 1;
}
}
我在这里根据if / else语句的结果设置整数_radioValueGender的值。我真的很感激任何帮助。我希望这很容易,这似乎是了解正确方法的问题。对于给您带来的不便,我们深表歉意。
答案 0 :(得分:1)
==
是等式比较运算符。它不执行变量赋值。
setRadioValueGender
被声明为具有void
返回类型。从中返回值是不正确的。
您想要的是:
void setRadioValueGender(DocumentSnapshot document) {
if (document['gender']=='female') {
_radioValueGender = 0;
} else {
_radioValueGender = 1;
}
}
或更简洁:
void setRadioValueGender(DocumentSnapshot document) {
_radioValueGender = (document['gender'] == 'female') ? 0 : 1;
}
答案 1 :(得分:1)
只需修改您的初始int _radioValueGender == _radioValueGender
声明并使其为int _radioValueGender;
。这样,它将强制该值成为任何int
对象。
然后代替result
来使用setState(() {_radioValueGender =
0 });
,以便在按下“ setRadioValueGener”时随时修改变量。
答案 2 :(得分:1)
==是一个比较,当您键入时,您询问的是左右两个值是否相等。 =是一个赋值,当您键入它时,您是在从左到右赋值。因此只需将其更改为:
void setRadioValueGender(DocumentSnapshot document) {
if (document['gender']=='female') {
return _radioValueGender = 0;
}
else {
return _radioValueGender = 1;
}
}