Skip to content
This repository has been archived by the owner on Jan 9, 2023. It is now read-only.

Type Error #54

Closed
knight-shade opened this issue May 8, 2018 · 1 comment
Closed

Type Error #54

knight-shade opened this issue May 8, 2018 · 1 comment

Comments

@knight-shade
Copy link

knight-shade commented May 8, 2018

Using a simple Pie chart i get the following exception:

I/flutter (16371): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter (16371): The following assertion was thrown building RawGestureDetector(state:
I/flutter (16371): RawGestureDetectorState#5f730(gestures: [tap])):
I/flutter (16371): type '(Sales, int) => Color' is not a subtype of type '(dynamic, int) => Color'
I/flutter (16371): 
I/flutter (16371): Either the assertion indicates an error in the framework itself, or we should provide substantially
I/flutter (16371): more information in this error message to help you determine and fix the underlying cause.
I/flutter (16371): In either case, please report this assertion by filing a bug on GitHub:
I/flutter (16371):   https://github.com/flutter/flutter/issues/new
I/flutter (16371): 
I/flutter (16371): When the exception was thrown, this was the stack:
I/flutter (16371): #0      ArcRenderer.assignMissingColors.<anonymous closure> (package:charts_common/src/chart/pie/arc_renderer.dart:352:18)
I/flutter (16371): #1      List.forEach (dart:core/runtime/libgrowable_array.dart:274:8)
I/flutter (16371): #2      ArcRenderer.assignMissingColors (package:charts_common/src/chart/pie/arc_renderer.dart:351:16)
I/flutter (16371): #3      ArcRenderer.preprocessSeries (package:charts_common/src/chart/pie/arc_renderer.dart:70:5)
I/flutter (16371): #4      BaseChart.preprocessSeries.<anonymous closure> (package:charts_common/src/chart/common/base_chart.dart:382:37)
I/flutter (16371): #5      __InternalLinkedHashMap&_HashVMBase&MapMixin&_LinkedHashMapMixin.forEach (dart:collection/runtime/libcompact_hash.dart:363:8)
I/flutter (16371): #6      BaseChart.preprocessSeries (package:charts_common/src/chart/common/base_chart.dart:381:10)
I/flutter (16371): #7      BaseChart.drawInternal (package:charts_common/src/chart/common/base_chart.dart:339:29)
I/flutter (16371): #8      PieChart.drawInternal (package:charts_common/src/chart/pie/pie_chart.dart:41:11)
I/flutter (16371): #9      BaseChart.draw (package:charts_common/src/chart/common/base_chart.dart:308:5)
I/flutter (16371): #10     ChartContainerRenderObject.reconfigure (package:charts_flutter/src/chart_container.dart:109:14)
I/flutter (16371): #11     ChartContainer.createRenderObject (package:charts_flutter/src/chart_container.dart:56:52)
I/flutter (16371): #12     RenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4268:28)
I/flutter (16371): #13     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4645:11)
I/flutter (16371): #14     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #15     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #16     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4646:14)
I/flutter (16371): #17     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #18     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #19     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4646:14)
I/flutter (16371): #20     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #21     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #22     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3645:16)
I/flutter (16371): #23     Element.rebuild (package:flutter/src/widgets/framework.dart:3487:5)
I/flutter (16371): #24     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3614:5)
I/flutter (16371): #25     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3761:11)
I/flutter (16371): #26     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3609:5)
I/flutter (16371): #27     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #28     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #29     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3645:16)
I/flutter (16371): #30     Element.rebuild (package:flutter/src/widgets/framework.dart:3487:5)
I/flutter (16371): #31     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3614:5)
I/flutter (16371): #32     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3609:5)
I/flutter (16371): #33     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #34     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #35     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3645:16)
I/flutter (16371): #36     Element.rebuild (package:flutter/src/widgets/framework.dart:3487:5)
I/flutter (16371): #37     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3614:5)
I/flutter (16371): #38     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3609:5)
I/flutter (16371): #39     ParentDataElement.mount (package:flutter/src/widgets/framework.dart:3947:11)
I/flutter (16371): #40     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #41     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4751:32)
I/flutter (16371): #42     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #43     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #44     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3645:16)
I/flutter (16371): #45     Element.rebuild (package:flutter/src/widgets/framework.dart:3487:5)
I/flutter (16371): #46     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3614:5)
I/flutter (16371): #47     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3761:11)
I/flutter (16371): #48     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3609:5)
I/flutter (16371): #49     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #50     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #51     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3645:16)
I/flutter (16371): #52     Element.rebuild (package:flutter/src/widgets/framework.dart:3487:5)
I/flutter (16371): #53     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3614:5)
I/flutter (16371): #54     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3609:5)
I/flutter (16371): #55     ParentDataElement.mount (package:flutter/src/widgets/framework.dart:3947:11)
I/flutter (16371): #56     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #57     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4751:32)
I/flutter (16371): #58     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #59     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #60     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4646:14)
I/flutter (16371): #61     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #62     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #63     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4646:14)
I/flutter (16371): #64     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #65     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #66     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3645:16)
I/flutter (16371): #67     Element.rebuild (package:flutter/src/widgets/framework.dart:3487:5)
I/flutter (16371): #68     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3614:5)
I/flutter (16371): #69     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3609:5)
I/flutter (16371): #70     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #71     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #72     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3645:16)
I/flutter (16371): #73     Element.rebuild (package:flutter/src/widgets/framework.dart:3487:5)
I/flutter (16371): #74     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3614:5)
I/flutter (16371): #75     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3609:5)
I/flutter (16371): #76     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #77     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #78     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3645:16)
I/flutter (16371): #79     Element.rebuild (package:flutter/src/widgets/framework.dart:3487:5)
I/flutter (16371): #80     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3614:5)
I/flutter (16371): #81     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3609:5)
I/flutter (16371): #82     ParentDataElement.mount (package:flutter/src/widgets/framework.dart:3947:11)
I/flutter (16371): #83     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #84     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4751:32)
I/flutter (16371): #85     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #86     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #87     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3645:16)
I/flutter (16371): #88     Element.rebuild (package:flutter/src/widgets/framework.dart:3487:5)
I/flutter (16371): #89     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3614:5)
I/flutter (16371): #90     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3761:11)
I/flutter (16371): #91     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3609:5)
I/flutter (16371): #92     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #93     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #94     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3645:16)
I/flutter (16371): #95     Element.rebuild (package:flutter/src/widgets/framework.dart:3487:5)
I/flutter (16371): #96     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3614:5)
I/flutter (16371): #97     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3609:5)
I/flutter (16371): #98     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #99     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #100    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3645:16)
I/flutter (16371): #101    Element.rebuild (package:flutter/src/widgets/framework.dart:3487:5)
I/flutter (16371): #102    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3614:5)
I/flutter (16371): #103    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3761:11)
I/flutter (16371): #104    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3609:5)
I/flutter (16371): #105    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #106    Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #107    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4646:14)
I/flutter (16371): #108    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #109    Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #110    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3645:16)
I/flutter (16371): #111    Element.rebuild (package:flutter/src/widgets/framework.dart:3487:5)
I/flutter (16371): #112    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3614:5)
I/flutter (16371): #113    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3609:5)
I/flutter (16371): #114    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #115    Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #116    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4646:14)
I/flutter (16371): #117    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #118    Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #119    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3645:16)
I/flutter (16371): #120    Element.rebuild (package:flutter/src/widgets/framework.dart:3487:5)
I/flutter (16371): #121    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3614:5)
I/flutter (16371): #122    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3761:11)
I/flutter (16371): #123    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3609:5)
I/flutter (16371): #124    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #125    Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #126    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3645:16)
I/flutter (16371): #127    Element.rebuild (package:flutter/src/widgets/framework.dart:3487:5)
I/flutter (16371): #128    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3614:5)
I/flutter (16371): #129    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3761:11)
I/flutter (16371): #130    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3609:5)
I/flutter (16371): #131    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
I/flutter (16371): #132    Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
I/flutter (16371): #133    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3645:16)
I/flutter (16371): #134    Element.rebuild (package:flutter/src/widgets/framework.dart:3487:5)
I/flutter (16371): #135    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3614:5)

Code

import 'package:flutter/material.dart';
import 'dart:math';
import 'package:charts_flutter/flutter.dart' as charts;

void main() => runApp( Charts());

class Charts extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Charts',
      home: MyCharts(),
    );
  }
}

class MyCharts extends StatefulWidget {
  @override
  _MyChartsState createState() => _MyChartsState();
}

class Sales {
  int year;
  int sales;
  charts.Color color;

  Sales(this.year, this.sales, this.color);

}

class _MyChartsState extends State<MyCharts> {

  List<Sales> _data;
  List<charts.Series<Sales, int>> _chartdata;



  void _makeData() {
    _chartdata = List<charts.Series<Sales, int>>();
    _data = <Sales>[
      Sales(0, 100, charts.MaterialPalette.red.shadeDefault),
      Sales(1, 75, charts.MaterialPalette.blue.shadeDefault),
      Sales(2, 25, charts.MaterialPalette.green.shadeDefault),
      Sales(3, 5, charts.MaterialPalette.yellow.shadeDefault),
    ];

    _chartdata.add( charts.Series(
      id: "sales",
      data: _data,
      colorFn: (sales, _) => sales.color,
      domainFn: (Sales sales, _) => sales.year,
      measureFn: (Sales sales, _) => sales.sales
    ));
  }

  @override
  void initState() {
    super.initState();
    _makeData();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Pie Charts'),
        centerTitle: true,
      ),
      body: Container(
        padding: EdgeInsets.all(32.0),
        child: Center(
          child: Column(
            children: <Widget>[
              Text('Sales data'),
              Expanded(child: charts.PieChart<Sales, int>(
                _chartdata,
                animate: true,
                animationDuration: Duration(seconds: 2),
              ),)
            ],
          ),
        ),
      ),
    );
  }
}


Flutter doctor

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, v0.3.1, on Linux, locale en_IN)
[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
[✓] Android Studio (version 3.1)
[✓] IntelliJ IDEA Ultimate Edition (version 2018.1)
[✓] Connected devices (1 available)

• No issues found!

@lorrainekan
Copy link
Contributor

Hi, we just synced the latest code that cleaned up our API. Because of the new API, you can now create the chart without the generics charts.PieChart(_chartData..

I also noticed that when adding to _chartData, the series is not typed, even though your list is typed charts.Series<Sales, int>. Please fix this.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants