el tipo de argumento 'int' no se puede asignar a la cadena de parámetros flutter

Aug 19 2020

estoy trabajando en flutter y puedo analizar mi solicitud de api usando dio perfectamente, pero después de enumerar mi elemento en lugar de guardar la suma total en la base de datos, quiero mostrar la suma del usuario de dos columnas de la base de datos, pero encuentro el tipo de argumento ' int' no se puede asignar al error de cadena de parámetro aquí está mi código

? 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']); 
                               
                                              
                        ),
                      ],
                    ),

                  ),
                ),
              );
            })

Respuestas

1 Uni Aug 19 2020 at 18:32

Eso definitivamente no mostrará ningún texto porque el Textwidget requiere un archivo String. Lo que tendrás que hacer es convertir eso inta Stringpara mostrarlo. Aquí hay un ejemplo:

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

No se puede mostrar en Texto:Text( int.parse( filteredItems[index]['priceOne'])- int parse(filteredItems[index]['priceDisc']); )

Debes escribir, por ejemplo:

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

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