访问 class B 中的变量并在 class A 中使用它
get access to a variable in class B and use it in class A
我想访问 class“B”的变量“a”并在 Aclass 的条件下使用它。我会给 class A 什么条件?
class A extends StatefulWidget
{
const A({ Key? key }) : super(key: key);
@override
_AState createState() => _AState();
}
class _AState extends State<A>
{
String picture = "a";
String title = "b";
@override
Widget build(BuildContext context)
{
if ( ??????? == 1) {
setState(() {
picture = "t";
title = "y";
return Scaffold()....
}
class B extends StatelessWidget
{`enter code here`
int? a;
@override
Widget build(BuildContext context)
{
return GestureDetector(
child: Container(...)),
onTap: ()
{
a = 1;
},
}
}
请试试这个。
你先把你的变量值放到静态变量中。
class StoreClassBValue{
static int a;
}
以及 class B:
的 onTap 方法
onTap: ()
{
StoreClassBValue.a =a = 1;
},
如果 classA 的语句:
if(StoreClassBValue.a==1)
{
//more your code
}
还有更多方法可用,例如 provide、bloc、getx,但这非常简单。
我想访问 class“B”的变量“a”并在 Aclass 的条件下使用它。我会给 class A 什么条件?
class A extends StatefulWidget
{
const A({ Key? key }) : super(key: key);
@override
_AState createState() => _AState();
}
class _AState extends State<A>
{
String picture = "a";
String title = "b";
@override
Widget build(BuildContext context)
{
if ( ??????? == 1) {
setState(() {
picture = "t";
title = "y";
return Scaffold()....
}
class B extends StatelessWidget
{`enter code here`
int? a;
@override
Widget build(BuildContext context)
{
return GestureDetector(
child: Container(...)),
onTap: ()
{
a = 1;
},
}
}
请试试这个。
你先把你的变量值放到静态变量中。
class StoreClassBValue{
static int a;
}
以及 class B:
的 onTap 方法onTap: ()
{
StoreClassBValue.a =a = 1;
},
如果 classA 的语句:
if(StoreClassBValue.a==1)
{
//more your code
}
还有更多方法可用,例如 provide、bloc、getx,但这非常简单。