如何将controller.index值保存到静态变量中


class SignUpConvert extends StatefulWidget {
const SignUpConvert({ Key? key}) : super(key: key);
@override
_SignUpConvertState createState() => _SignUpConvertState();
}
class _SignUpConvertState extends State<SignUpConvert>
with SingleTickerProviderStateMixin {
TabController? tabController;
@override
void initState() {
super.initState();
tabController = TabController(vsync: this, length: 2);
print(tabController!.index);

}


@override
void dispose() {
super.dispose();
}

我想在静态变量中反映当前索引

class MyVariable{
static int indexCount = 0;
}

这样我就可以用它从同一个按钮导航到不同的页面

按钮为;

onSubmit: (_) {
if (MyVariable.indexCount == 0) {
Navigator.of(context).push(MaterialPageRoute(
builder: (builder) => LogInConvert()));
}
else if (MyVariable.indexCount == 1) {
Navigator.of(context).push(MaterialPageRoute(
builder: (builder) => SignUpConvert()));
}
},

但是controller.index没有保存在MyVariable.indexCount中,我得到了默认值,即0。

我正在使用自定义按钮保存索引

CustomButton(
index: widget.tabIndex,
route: widget.pageToNavigate,
backgroundColor: Color(0xff416bbd),
borderColor: Color(0xff416bbd),
name: 'Sign Up',
textColor: Colors.white,
),

然后将索引值分配给MyVariable.indexCount.

但它不起作用!!

使用getx Storage存储静态值并读取值和getstorage.read("store"(;

dependencies:
get_storage: ^2.0.3

示例:

static final _otherBox = () => GetStorage('MyPref');
final username = ''.val('username');
final age = 0.val('age');
final price = 1000.val('price', getBox: _otherBox);
// or
final username2 = ReadWriteValue('username', '');
final age2 = ReadWriteValue('age', 0);
final price2 = ReadWriteValue('price', '', _otherBox);

最新更新