I have this issue on my flutter application. It seems failed to load an API request, but when i try on browser it return okay "http://vplay.id/api/series/popular".
Debug
exception = {_Exception} Exception: Failed to load
message = "Failed to load"
this = {SeriesProvider}
_url = "http://vplay.id/api/"
_loading = false
_currentPage = 1
_pages = 1
_series = {_GrowableList} size = 0
_seriesStream = {_AsyncStreamController}
endpoint = "series/popular"
e = {_TypeError} type 'int' is not a subtype of type 'double'
_stackTrace = {_StackTrace}
_failedAssertion = "is assignable"
_url = "package:streamapp/src//helpers/parse.dart"
_line = 31
_column = 7
message = "type 'int' is not a subtype of type 'double'"
Series_provider.dart
import 'dart:async';
import 'dart:convert';
import 'package:http/http.dart' as http;
import '../helpers/api.dart';
import '../models/serie_model.dart';
export '../models/serie_model.dart';
class SeriesProvider {
String _url = Api.url;
bool _loading = false;
int _currentPage = 1;
int _pages = 1;
List<Serie> _series = List();
final _seriesStream = StreamController<List<Serie>>();
Function(List<Serie>) get seriesSink => _seriesStream.sink.add;
Stream<List<Serie>> get seriesStream => _seriesStream.stream;
void dispose() {
_seriesStream?.close();
}
Future<List<Serie>> _process(String endpoint) async {
try {
final resp = await http.get(_url + endpoint);
if (resp.statusCode != 200) {
throw Exception('Failed to load');
}
final data = json.decode(resp.body);
final series = Series.fromJsonList(data);
return series.items;
} catch (e) {
throw Exception('Failed to load');
}
}
Helpers/parse.dart
static double checkDouble(dynamic value) {
if (value is String) {
return double.parse(value);
} else {
return value;
}
}
}
This is my first time with flutter, and this is interesting since it only me face this issue (this is an app i get from codecanyon marketplace) with fresh installation.
android - type 'int' is not a subtype of type 'double' - Stack Overflow.
A double is a floating-point number, or a number with a decimal point.
To Solve type 'int' is not a subtype of type 'String' error in Dart Error is saying you are passing String where flutter required for the Integer value. So that you have to pass Integer there Or you can just use our solutions to solve this error.
An idea would be to use num
instead of int
or double
in this case.
You only need to add .toDouble() function to last returned value.
static double checkDouble(dynamic value) {
if (value is String) {
return double.parse(value);
} else {
return value.toDouble();
}
}
}
static double checkDouble(dynamic value) {
if (value is String) {
return double.parse(value);
} else {
return value;
}
}
}
The problem seems from the last return value
. You may need return value+.0
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With