Ir ao conteúdo

Posts recomendados

Postado

Estou testando um código em Flutter usando uma API para criar um conversor de moedas, no entanto estou obtendo um erro e não consegui achar nenhuma solução plausivel.

 

Error Message:

The argument type 'void Function(String)' can't be assigned to the parameter type 'void Function(String?)?'.

 

 

Code with error marks:            

import 'package:flutter/material.dart';

Widget customDropDown(List<String> items, String value, void onChange(val)){
  return Container(
    padding: EdgeInsets.symmetric(vertical: 4.0, horizontal: 18.0),
    decoration: BoxDecoration(
      color: Colors.white,
      borderRadius: BorderRadius.circular(8.0),
    ),
    child: DropdownButton<String>(
      value: value,
      onChanged: (String val)  {
        onChange(val);
      },
      items: items.map<DropdownMenuItem<String>>((String val){
        return DropdownMenuItem(
          child: Text(val),
          value: val,
        );
      }).toList(),
    ),
  );
}

 

O erro é marcado no 

onChanged: (String val)  {
        onChange(val);
      },

Alguém sabe o que poderia estar causando esse erro?

 

Obrigada

  • Membro VIP
Postado

@JuuzoO_O, tente assim:
 

      onChanged: (String? val) {
        onChange(val);
      },

 

Se for isso, não sei exatamente o porquê, mas talvez seja que o valor da mudança tem que ser nullable.. daí, a variável precisa comportar esses possíveis estados. Adendo: não seria em relação a ser uma string vazia, mas sim de está null mesmo.

 

Nesse sentido, seria como se a assinatura tivesse assim:
 

Widget customDropDown(List<String> items, String value, void onChange(String? val)) {

 

...

PS: descobri aqui. É dos requisitos do Widget.
image.png


A class DropdownButton exige que assinatura seja assim. 😉

PS2: observe que a definição já resume tudo.. inclusive dizendo que o própria função pode ser null..., mas como é requerido, obrigatoriamente precisa setar. (Que é null OU que vai ser uma função que recebe um string?).

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!