Я пытаюсь понять, как ведет себя трепетный виджет, заполняемый элементом памяти, когда изменяется базовый элемент памяти. Мой пример использования таков: при срабатывании какого-либо события (используя пакет EventBus) этот базовый элемент памяти может измениться или не измениться . Если это так, то я хотел бы вызвать setState (), но не иначе, поскольку я не хотел бы без необходимости вызывать его. Пожалуйста, помогите мне, как я могу достичь этого. В настоящее время onclick меняет str, но виджет Text не меняется. Мой пример - нажатие кнопки (действует как триггер события) изменяет базовый элемент str, который заполняет элемент Text. Заранее спасибо.
class _MainApp extends State<MainApp>{
@override
String str = "1";
Widget build(BuildContext context){
return MaterialApp(
home: Scaffold(
body: Column(
children: <Widget>[
CustomText(),
RaisedButton(onPressed: (){
print(CustomTextS.str);
CustomTextS.setStr("f");
print(CustomTextS.str);
},)
],
),
),
);
}
}
class CustomText extends StatefulWidget{
CustomTextS createState() => CustomTextS();
}
class CustomTextS extends State<CustomText>{
static String str = "1";
static setStr(String a){
str = a;
}
Widget build(BuildContext context){
return Text(str);
}
}