вы можете создать экземпляр ClassOne
в ClassTwo
, потому что вы определяете поле, но подумайте над этим: когда этот код будет выполняться? instOne.person;
. Теперь, чтобы решить проблему, вы должны выполнить этот код в функции конструктора или в initstate виджета, и разница между ними в том, что метод конструктора выполняется первым
в функции конструктора
var instone= ClassOne();
_ClassTwoState(){
instone.person="test";
}
в состоянии виджета
@override
void initState() {
instone.person="test";
super.initState();
}
также вы должны объявить поля и функции, которые вы собираетесь использовать в ClassTwo
, а не в ClassTwoState
class ClassOne extends StatefulWidget {
var person= 'myname';
hey(){
print('hey hello');
}
@override
ClassOneState createState() => ClassOneState();
}
полный пример