CidQu
CidQu

Reputation: 450

Use variable in widget build in flutter

I started programming in flutter, but I can't pass a variable to a new class. I was able to do that on my other codes. Now I don't know what to do.

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(sonuc, oran);
}

class _BilgiEkrani extends State<BilgiEkrani> {
  _BilgiEkrani(String sonuc, double oran);

  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
      toolbarHeight: 20,
      backgroundColor: Colors.pinkAccent,
      title: **sonuc**,
//Undefined name 'sonuc'.
//Try correcting the name to one that is defined, or defining the name.
    ));
  }
}

Upvotes: 0

Views: 6990

Answers (2)

Luiz
Luiz

Reputation: 1

A simple way is to pass by the constructor as the other widgets do.

class CustomWidget extends StatelessWidget {
  final String? parameter;
  final String requiredParameter;

  CustomWidget({this.parameter, required this.requiredParameter});

  @override
  Widget build(BuildContext context) {
    return  ...
  }
}

Now you can use this widget like this:

CustomWidget(requiredParameter: 'Some value')

Upvotes: 0

Md. Yeasin Sheikh
Md. Yeasin Sheikh

Reputation: 63649

While you like to use variables inside State class that is coming from main class that extends StatefulWidget, you need to use widget.variableName. In your case, to use sonuc String inside state, you need to use widget.sonuc.

title: takes a widget, therefor you need to wrap sonic with widget then pass it there. For String, simply use Text widget.

title: Text(widget.sonuc),

You can learn more about widgets

Upvotes: 4

Related Questions