Pular para o conteúdo principal

non_constant_map_element

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

The elements in a const map literal must be constant.

Descrição

#

O analisador emite este diagnóstico quando um elemento if ou um elemento de spread em um mapa constante não é um elemento constante.

Exemplos

#

O código a seguir gera este diagnóstico porque tenta fazer spread de um mapa não constante:

dart
var notConst = <int, int>{};
var map = const <int, int>{...notConst};

Da mesma forma, o código a seguir gera este diagnóstico porque a condição no elemento if não é uma expressão constante:

dart
bool notConst = true;
var map = const <int, int>{if (notConst) 1: 2};

Correções comuns

#

Se o mapa precisar ser um mapa constante, então torne os elementos constantes. No exemplo de spread, você pode fazer isso tornando constante a coleção que está sendo espalhada:

dart
const notConst = <int, int>{};
var map = const <int, int>{...notConst};

Se o mapa não precisar ser um mapa constante, então remova a palavra-chave const:

dart
bool notConst = true;
var map = <int, int>{if (notConst) 1: 2};

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ê.