Mettre une variable dans un const text()

const Text(‹ Cliquer ici! $_counter ›),

Le bonjour amène la conversation et la conversation amène la carotte.
Driss CHRAIBI

Bonjour @LucasSeu
Donne nous un peu plus de contexte, langage, techno sinon ta requête risque d’avoir une erreur 504

1 « J'aime »

Voila je suis débutant en programmation flutter et j’ai essayés de le code dans la vidéo 3.3 de

voici l’erreur:
A value of type ‹ Null › can’t be assigned to a parameter of type ‹ String › in a const constructor.

voici mon code:

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'test 75'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const Text(
              'nombre de click: $_counter',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headline4,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

au niveau du const Text()

Salut @LucasSeu , tout d’abord bienvenu parmi nous :slight_smile:
Effectivement ton code te retourne une erreur car tu lui indique que ton widget Text() sera constant (car tu écris const Text("..") ) mais, tu lui dit que tu veux afficher une variable du nom de _counter.
Qui dit variable, dit valeur qui va potentiellement par la suite être modifiée (notamment dans ta fonction _incrementCounter où ta variable _counter sera incrémenté de 1).
Ceci dit, le contenu de ton widget Text() ne peut donc pas être constant car il contient une variable qui peut évoluer.
La solution est donc de retirer le const placé devant ton widget Text().

Résumé :
const = valeur qui ne peut pas changer. (les enfants du contenu en question ne doivent pas être « modifiable » non plus).

Ps : lorsque tu fais un post sur ce forum et que tu veux insérer du code, tu peux cliquer sur ce bouton

2 « J'aime »

Merci bien pour les explications et aussi pour l’astuce d’insertion de code :slight_smile:

1 « J'aime »

Si ma réponse t’a apporté la solution, pense à indiquer que ton sujet a été résolu :slight_smile:

Bon code à toi @LucasSeu !