You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何在StatefulWidget的build方法内使用传入的参数变量?

问题原因

  1. Flutter中State子类无需通过构造函数接收所属StatefulWidget的属性,可直接通过系统提供的widget前缀访问父组件的所有公开属性,你写的State构造函数没有将传入的参数保存为实例变量,也不符合官方开发规范。
  2. build方法中直接调用sonuc,当前_BilgiEkrani类中没有定义该实例变量,因此IDE提示未定义。
  3. 额外补充:原代码中AppBar的title参数接收的是Widget类型,直接传入String也会触发类型错误。

修复后代码

import 'dart:io';
import 'package:camera/camera.dart';
import 'package:google_ml_kit/google_ml_kit.dart';
import 'package:flutter/material.dart';

class BilgiEkrani extends StatefulWidget {
  final String sonuc;
  final double oran;
  const BilgiEkrani({required this.sonuc, required this.oran});
  @override
  _BilgiEkrani createState() => _BilgiEkrani();
}

class _BilgiEkrani extends State<BilgiEkrani> {
  // 删除自定义的无效State构造函数
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
      toolbarHeight: 20,
      backgroundColor: Colors.pinkAccent,
      // 通过widget前缀获取父组件属性,同时用Text组件包裹字符串
      title: Text(widget.sonuc),
    ));
  }
}

注意事项

  • 所有StatefulWidget定义的公开属性,在对应State类中都可以通过widget.属性名直接调用,无需手动传参
  • 不要给State类自定义构造函数传递参数,不符合Flutter设计规范,容易出现状态同步异常

内容的提问来源于stack exchange,提问作者CidQu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 18:06:10