У меня ошибка со строкой const MyHomePage({Ключ? ключ, this.title}): супер (ключ: ключ);

#flutter #android-studio

#трепетание #android-studio

Вопрос:

  import 'package:flutter/material.dart';
    
    void main() => runApp(MyApp());
    
    class MyApp extends StatelessWidget {
       // This widget is the root of your application.
       @override
       Widget build(BuildContext context) {
          return MaterialApp`
             title: 'Hello World Demo Application',
             theme: ThemeData(
                primarySwatch: Colors.blue,
             ),
             home: MyHomePage(title: 'Home page'),
          );
       }
    }
    class MyHomePage extends StatelessWidget {
       const MyHomePage({Key? key, this.title}) : super(key: key);
       final String title;
    
       @override
       Widget build(BuildContext context) {
          return Scaffold(
             appBar: AppBar(
                title: Text(this.title),
             ),
             body: Center(
                child:
                Text(
                   'Hello World',
                )
             ),
          );
       }
    }
    
 

19:26: Ошибка: параметр ‘title’ не может иметь значение ‘null’ из-за его типа ‘String’, но неявное значение по умолчанию равно ‘null’.
Попробуйте добавить либо явное значение по умолчанию, отличное от ‘null’, либо модификатор ‘required’.
MyHomePage({Ключ , this.title}): супер (ключ: ключ);

19:47: Ошибка: средство получения не найдено: ‘ключ’. MyHomePage({Ключ , this.title}): супер (ключ: ключ);

Комментарии:

1. Какую версию flutter вы используете? В MaterialApp `ваше использование» вместо ( также добавьте обязательное перед this.title .

Ответ №1:

Ваш заголовок — это конечная переменная, не обнуляемая, она не может иметь нулевого значения. Вам нужно пометить параметр title как требуемый:

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

Комментарии:

1. А как насчет получения not key в super(key :key)

2. @LalitJoshi Key является необязательным параметром, его не нужно передавать при инициализации MyHomePage. Если вы спрашиваете, что такое ключ, тогда просмотрите этот документ: api.flutter.dev/flutter/foundation/Key-class.html

3. опять у меня та же проблема, которую я добавляю туда, но она не решена

4. @LalitJoshi Какую ошибку он показывает там сейчас?

5. Ошибка: параметр ‘title’ не может иметь значение ‘null’ из-за его типа ‘String’, но неявное значение по умолчанию равно ‘null’. Попробуйте добавить либо явное значение по умолчанию, отличное от ‘null’, либо модификатор ‘required’. MyHomePage({Ключ , this.title}): супер (ключ: ключ);

Ответ №2:

Этот код работает на 100%. попробуй это.

 import 'package:flutter/material.dart';

void main() => runApp(const MyApp());

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Hello World Demo Application',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Home page'),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(title),
      ),
      body: const Center(
          child: Text(
        'Hello World',
      )),
    );
  }
}
 

добавлен снимок экрана