Pular para o conteúdo principal

invalid_widget_preview_application

Detalhes sobre o diagnóstico 'invalid_widget_preview_application' produzido pelo analisador do Dart.

The '@Preview(...)' annotation can only be applied to public, statically accessible constructors and functions.

Descrição

#

O analisador gera este diagnóstico quando uma anotação @Preview(...) é aplicada a um alvo inválido de widget preview. Widget previews só podem ser aplicados a construtores e funções públicos, acessíveis estaticamente e definidos explicitamente.

Exemplos

#

O código a seguir gera este diagnóstico porque _myPrivatePreview é privado:

dart
import 'package:flutter/widgets.dart';
import 'package:flutter/widget_previews.dart';
​
// Invalid application to private top-level function.
@Preview()
// ignore: unused_element
Widget _myPrivatePreview() => Text('Foo');

O código a seguir gera este diagnóstico porque myExternalPreview é external:

dart
import 'package:flutter/widgets.dart';
import 'package:flutter/widget_previews.dart';
​
// Invalid application to an external function.
@Preview()
external Widget myExternalPreview();

O código a seguir gera este diagnóstico porque PublicWidget._() é privado:

dart
import 'package:flutter/widgets.dart';
import 'package:flutter/widget_previews.dart';
​
class PublicWidget extends StatelessWidget {
  // Invalid application to a private constructor.
  @Preview()
  const PublicWidget._();
​
  @override
  Widget build(BuildContext context) => Text('Foo');
}

O código a seguir gera este diagnóstico porque instancePreview é um método de instância:

dart
import 'package:flutter/widgets.dart';
import 'package:flutter/widget_previews.dart';
​
class PublicWidget extends StatelessWidget {
  const new();
​
  // Invalid application to a instance member.
  @Preview()
  Widget instancePreview() => PublicWidget();
​
  @override
  Widget build(BuildContext context) => Text('Foo');
}

O código a seguir gera este diagnóstico porque _PrivateWidget é privado:

dart
import 'package:flutter/widgets.dart';
import 'package:flutter/widget_previews.dart';
​
// ignore: unused_element
class _PrivateWidget extends StatelessWidget {
  // Invalid application to a constructor of a private class.
  @Preview()
  const _PrivateWidget();
​
  @override
  Widget build(BuildContext context) => Text('Foo');
}

O código a seguir gera este diagnóstico porque _PrivateWidget é privado:

dart
import 'package:flutter/widgets.dart';
import 'package:flutter/widget_previews.dart';
​
// ignore: unused_element
class _PrivateWidget extends StatelessWidget {
  const new();
​
  // Invalid application to a static method of a private class.
  @Preview()
  Widget privateStatic() => _PrivateWidget();
​
  @override
  Widget build(BuildContext context) => Text('Foo');
}

O código a seguir gera este diagnóstico porque AbstractWidget é uma classe abstract:

dart
import 'package:flutter/widgets.dart';
import 'package:flutter/widget_previews.dart';
​
abstract class AbstractWidget extends StatelessWidget {
  // Invalid application to a constructor of an abstract class.
  @Preview()
  AbstractWidget();
​
  @override
  Widget build(BuildContext context) => Text('Foo');
}

Correções comuns

#

Crie um construtor, uma função de nível superior ou um membro de classe dedicado, público, acessível estaticamente e definido explicitamente, para ser usado como preview:

Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.