le type d'argument 'int' ne peut pas être affecté à la chaîne de paramètres flutter

Aug 19 2020

Je travaille sur Flutter et je suis capable d'analyser parfaitement ma requête API en utilisant dio mais après avoir listé mon article au lieu d'enregistrer la somme totale dans la base de données, je veux montrer la somme utilisateur de deux colonnes de la base de données mais je rencontre le type d'argument ' int' ne peut pas être affecté à l'erreur de chaîne de paramètres voici mon code

? ListView.builder(
            itemCount: filteredItems.length,
            itemBuilder: (BuildContext context, int index) {
              return GestureDetector(

                onTap: () {
                 
                Navigator.of(context).pushNamed(PostDetail.routeName, arguments: filteredItems[index]);
                },
                child: Card(

                  elevation: 10,
                  child: Padding(
                    padding: const EdgeInsets.symmetric(
                        vertical: 10, horizontal: 8),
                    child: Column(
                      children: <Widget>[

                        Text(
                          filteredItems[index]['product_name'],
                          style: TextStyle(fontSize: 18),
                        ),
                        Text(
                          // here i need to display two columans from database but error appers here
         int.parse( filteredItems[index]['priceOne'])- int parse(filteredItems[index]['priceDisc']); 
                               
                                              
                        ),
                      ],
                    ),

                  ),
                ),
              );
            })

Réponses

1 Uni Aug 19 2020 at 18:32

Cela n'affichera certainement aucun texte car le Textwidget nécessite un fichier String. Ce que vous devrez faire est de le convertir inten a Stringpour l'afficher. Voici un exemple:

 Text((int.parse(filteredItems[index]['priceOne'])- int.parse(filteredItems[index]['priceDisc'])).toString()), 
1 Captivity Aug 19 2020 at 18:34

Vous ne pouvez pas afficher dans Text :Text( int.parse( filteredItems[index]['priceOne'])- int parse(filteredItems[index]['priceDisc']); )

Vous devez écrire, par exemple :

Row(
   children: [
    Text(
filteredItems[index]['priceOne'] + ' - '),
    Text(filteredItems[index]['priceDisc'])
]
                           
  or:

          Text((int.parse(filteredItems[index]['priceOne'])- int.parse(filteredItems[index]['priceDisc'])).toString()),