Я пытаюсь запустить графики из библиотеки во флете. Я не могу запустить с помощью main.dart.
Основной дротик:
import './widgets/chart.dart';
void main() {
runApp(
new MaterialApp(
home: PointsLineChart(),
),
);
}
диаграмма.дротик:
import 'package:flutter/material.dart';
import 'package:charts_flutter/flutter.dart' as charts;
class PointsLineChart extends StatelessWidget {
final List<charts.Series> seriesList;
final bool animate;
PointsLineChart(this.seriesList, {this.animate});
/// Creates a [LineChart] with sample data and no transition.
factory PointsLineChart.withSampleData() {
return new PointsLineChart(
_createSampleData(),
// Disable animations for image tests.
animate: false,
);
}
@override
Widget build(BuildContext context) {
return new charts.LineChart(seriesList,
animate: animate,
defaultRenderer: new charts.LineRendererConfig(includePoints: true));
}
/// Create one series with sample hard coded data.
static List<charts.Series<LinearSales, int>> _createSampleData() {
final data = [
new LinearSales(0, 5),
new LinearSales(1, 25),
new LinearSales(2, 100),
new LinearSales(3, 75),
];
return [
new charts.Series<LinearSales, int>(
id: 'Sales',
colorFn: (_, __) => charts.MaterialPalette.blue.shadeDefault,
domainFn: (LinearSales sales, _) => sales.year,
measureFn: (LinearSales sales, _) => sales.sales,
data: data,
)
];
}
}
/// Sample linear data type.
class LinearSales {
final int year;
final int sales;
LinearSales(this.year, this.sales);
}
Ошибка, которую я получаю, заключается в том, что в main.dart мне нужно что-то ввести, чтобы запустить chart.dart. В PointsLineChart(),
это дает мне ошибку:
Ожидается 1 обязательный аргумент(ы), но найдено 0.dart(not_enough_required_arguments) (новый) PointsLineChart(List> seriesList, {bool animate}) → PointsLineChart
Конструктор PointsLineChart принимает два аргумента:
PointsLineChart(this.seriesList, {this.animate});
тогда как в вашем main.dart вы не приводите аргументов:
home: PointsLineChart(),// here you need to add two arguments!!!
Измените код, как показано ниже:
runApp(
new MaterialApp(
home: PointsLineChart(PointsLineChart.createSampleData(), animate: false),
),
);
также измените _createSampleData на createSampleData, чтобы сделать его общедоступным.