Flutter 如何通过有状态小部件传递参数

Flutter 如何通过有状态小部件传递参数,flutter,dart,Flutter,Dart,当调用另一个类时,我想用一个参数初始化该类,其形式与小部件通常初始化的形式相同 使用StatefulWidget执行此操作时,我会创建一个自定义实例化器,就像在C#或其他我比Dart更了解的语言中一样,并将参数传递给类的属性 Stateful类给了我一条蓝色的曲线,并说我应该在一个“@immutable class”中初始化属性。它可以工作,但我讨厌蓝色的曲线 有没有更好的方法将参数传递给有状态类 类CreateTest扩展StatefulWidget{ DemandRecord\u Dema

当调用另一个类时,我想用一个参数初始化该类,其形式与小部件通常初始化的形式相同

使用
StatefulWidget
执行此操作时,我会创建一个自定义实例化器,就像在C#或其他我比Dart更了解的语言中一样,并将参数传递给类的属性

Stateful类给了我一条蓝色的曲线,并说我应该在一个“@immutable class”中初始化属性。它可以工作,但我讨厌蓝色的曲线

有没有更好的方法将参数传递给有状态类


类CreateTest扩展StatefulWidget{
DemandRecord\u DemandRecord;
BuildContext\u BuildContext;
@凌驾
状态createState(){
返回CreateTestState(_buildContext,_demandRecord);
}
CreateTest()
{
}
CreateTest.start(BuildContext上下文,DemandRecord DemandRecord){
_buildContext=context;
_demandRecord=demandRecord;
}  
}
我只是想把它传下去

这就是错误==>

该类(或该类继承的类)标记为“@immutable”,但其一个或多个实例字段不是最终字段:


Jamie

这是实现您想要做的事情的正确方法,使用类似于中提供的结构:


这是实现您想要做的事情的正确方法,使用类似于中提供的结构:


对于那些将来读到这篇文章的人来说,几个月后我发现了如何做我真正想做的事情,但不知道如何做

控制器的实现中有一个名为#widget#的参数,可用于返回创建状态控制器的widget

import 'package:flutter/material.dart';

class CreateTest extends StatefulWidget {
  final DemandRecord demandRecord;
  final BuildContext buildContext;

  CreateTest({Key key, this.demandRecord, this.buildContext}) : super(key: key);

  @override
  _CreateTestState createState() => _CreateTestState();
}

class _CreateTestState extends State<CreateTest> {

  @override
  Widget build(BuildContext context) {
    // TODO: implement build

对于那些将来读到这篇文章的人来说,几个月后我发现了如何做我真正想做的事情,但不知道如何做

控制器的实现中有一个名为#widget#的参数,可用于返回创建状态控制器的widget

import 'package:flutter/material.dart';

class CreateTest extends StatefulWidget {
  final DemandRecord demandRecord;
  final BuildContext buildContext;

  CreateTest({Key key, this.demandRecord, this.buildContext}) : super(key: key);

  @override
  _CreateTestState createState() => _CreateTestState();
}

class _CreateTestState extends State<CreateTest> {

  @override
  Widget build(BuildContext context) {
    // TODO: implement build

谢谢,这很有帮助。谢谢还有一个快速的问题,我想把变量传递给_CreateTestState函数我需要传递密钥的目的是什么?这篇文章将解释Mazin,谢谢我知道密钥的用途,我想确定的是他为什么在上面选择创建密钥并传递它。谢谢,这非常有用。谢谢还有一个快速的问题,我想把变量传递给_CreateTestState函数我需要传递密钥的目的是什么?这篇文章将解释Mazin,谢谢我知道密钥的用途,我想确定的是为什么他在上面选择创建密钥并传递它。
import 'package:flutter/material.dart';

class CreateTest extends StatefulWidget {
  final DemandRecord demandRecord;
  final BuildContext buildContext;

  CreateTest({Key key, this.demandRecord, this.buildContext}) : super(key: key);

  @override
  _CreateTestState createState() => _CreateTestState();
}

class _CreateTestState extends State<CreateTest> {

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
  Colors localColor = widget.demandRecord.color; 
  if (localColor == Colors.blue) 
     // act on local Color here and notice widget. gave access to
     // parameters passed into StatefulWidget 

    return null;
  }

}