在flutter中处理@build方法中的变量的正确方法是正确的吗?

问题描述

我认为有时需要在@override构建方法中处理变量。

@override
  Widget build(BuildContext context) {
    Animation animationTitle1 = Tween<double>(begin: 0.0,end: 1.0).animate(
        CurvedAnimation(
            parent: widget.animationController,curve: Interval(0,1.0,curve: Curves.fastOutSlowIn)));
    Animation animationTitle2 = Tween<double>(begin: 0.0,curve: Interval(0.2,curve: Curves.fastOutSlowIn)));
.
.
.

我不知道这在逻辑上是否有效? 但是以某种方式我需要这种逻辑来声明和管理@build方法中的多个变量。 一些要求,例如

  • 动画对象
  • 在某些情况下
  • 手动调用流构建器窗口小部件以刷新数据

示例

@override
  Widget build(BuildContext context) {
    var streamBuilder = StreamBuilder(
          stream: myStreamObj,builder: (BuildContext context,AsyncSnapshot<dynamic> snapshotVacchan) {
           // my code
          },);
    
    return Column(
            children: [
              streamBuilder,FlatButton(
                  child: Text('Reload'),onpressed: () {
                    setState(() {
                      myStreamObj = newScreen;
                    });
                  }),],);
 }

解决方法

据我所知,在build方法中声明或管理变量不是正确的编码方式。