Это скорее вопрос «дротик», чем вопрос «трепыхаться». Поэтому я только что проверил код в dartpad.dev
Дело в том, что он сохраняется в state1. Но дело в том, что вы не можете ссылаться на него с другим экземпляром, потому что тогда этот экземпляр будет вновь созданным экземпляром и будет иметь другое значение для state1. Решение? Вы можете сделать state11 переменной stati c, и вместо вызова экземпляра вы вызываете его напрямую с классом. Примерно так:
void main() {
print(MyHomePageState.state11); //Line 1
MyHomePageState().getprints('Some state');
print(MyHomePageState.state11); //Line 4
}
class MyHomePageState {
static var state11;
getprints(var state1) {
print("hello"); //Line 2
print(state1); //Line 3
state11 = state1;
}
}
с выводом как:
null
hello
Some state
Some state
Это гарантирует, что изменение значения state1 отражается во всех экземплярах класса.
Или. .. Вы можете сохранить экземпляр в переменной, а затем вызвать переменную этого экземпляра.
void main() {
var homePage = MyHomePageState();
homePage.getprints('Some state');
print(homePage.state11); //Line 3
}
class MyHomePageState {
var state11;
getprints(var state1) {
print("hello"); //Line 1
print(state1); //Line 2
state11 = state1;
}
}
с выводом как:
hello
Some state
Some state
Но поскольку вы используете это для Виджет HomePage, я бы рекомендовал использовать первый способ.