【问题标题】:how to rerun init state of widget from out side of class in flutter?如何在颤动中从类外重新运行小部件的初始化状态?
【发布时间】:2021-11-26 15:08:04
【问题描述】:

当用户点击 App 的按钮(在其他小部件中)时,我想重新运行小部件的初始化状态。

我尝试了以下代码但没有成功:

onPressed:(){
ExampleWidget();
}

解释: 当用户单击按钮时,我想重新运行 Widget。该按钮在应用程序的其他小部件中定义示例代码如下:

class ExampleWidget extends StatefulWidget {
const ExampleWidget({Key? key}) : super(key: key);

@override
State<ExampleWidget> createState() => ExampleWidgetState();
 }

class ExampleWidgetState extends State<ExampleWidget> {

Code between this Brackets

}

我想重新运行这个小部件。我正在尝试以下方法:

class OtherWidget extends StatelessWidget {


@override
Widget build(BuildContext context) {
return Scaffold(
floatingActionButton: FloatingActionButton(
 onPressed:() {  ExampleWidget()  }
,child:Icon(Icons.delete)
 ,),),}

如果你知道这个问题的答案就回答这个问题..

【问题讨论】:

  • 为什么要在init state中声明函数?
  • 我没有在 initState 中声明它,我只运行它 + 我还在 init State 中添加了一个 setState 命令,所以这就是为什么运行 init state 至关重要。
  • 所以你可以运行这个函数并在你的 onPressed 中调用 setState?抱歉,我认为没有必要再次运行 initState
  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: flutter dart widget flutter-layout rebuild


【解决方案1】:

您可以使用FutureBuilder 来调用处于init 状态的函数。每次按下按钮时都会调用该函数。检查this

【讨论】:

    猜你喜欢
    • 2019-10-06
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 2020-10-28
    • 2019-09-14
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    相关资源
    最近更新 更多