Null error when using tooltip on waterfall chart

Hello everyone, 

while testing out Syncfusion charts I stumbled upon an error:

I tried to enable the tooltip on a waterfall chart (the example from the documentation). When clicking on one of the columns the app returns an error (see below). On a column chart everything works just fine and the tooltip is displayed properly.

I would really appreciate any ideas about the origin of this error.

Thanks a lot!

import 'package:flutter/material.dart';
import 'package:george/constants/styling.dart';
import 'package:syncfusion_flutter_charts/charts.dart';

class DashboardIncomeBalanceDetails extends StatefulWidget {
@override
State<DashboardIncomeBalanceDetails> createState() => _DashboardIncomeBalanceDetailsState();
}

class _DashboardIncomeBalanceDetailsState extends State<DashboardIncomeBalanceDetails> {
@override
void initState() {
super.initState();
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
centerTitle: false,
titleSpacing: 0.0,
backgroundColor: Colors.white,
leading: BackButton(
color: kSubheadlineColor,
),
title: Text(
'Title',
style: TextStyle(
color: kHeadlineColor,
),
),
),
body: SafeArea(
child: Container(
child: Column(
children: [
SfCartesianChart(
tooltipBehavior: TooltipBehavior(enable: true),
primaryXAxis: NumericAxis(minimum: 0, interval: 2, maximum: 12),
series: <ChartSeries<ChartData, double>>[
WaterfallSeries<ChartData, double>(
enableTooltip: true,
dataSource: <ChartData>[
ChartData(2, 10),
ChartData(3, -3),
ChartData(4, 5, true),
ChartData(5, 4),
ChartData(6, -2),
ChartData(7, -5, true),
ChartData(8, -10),
ChartData(9, 8),
ChartData(10, 8),
ChartData(11, 5, false),
],
negativePointsColor: const Color.fromRGBO(229, 101, 144, 1),
intermediateSumColor: const Color.fromRGBO(79, 129, 188, 1),
totalSumColor: const Color.fromRGBO(79, 129, 188, 1),
color: const Color.fromRGBO(0, 189, 174, 1),
xValueMapper: (ChartData data, _) => data.x,
yValueMapper: (ChartData data, _) => data.y,
intermediateSumPredicate: (ChartData data, _) => data.isIntermediate,
totalSumPredicate: (ChartData data, _) => data.isTotal,
connectorLineSettings: WaterfallConnectorLineSettings(width: 2.5),
),
],
),
],
),
),
),
);
}
}

class ChartData {
ChartData(this.x, this.y, [this.isIntermediate, this.isTotal]);
final double? x;
final num? y;
final bool? isIntermediate;
final bool? isTotal;
}

======== Exception caught by gesture library =======================================================

The following _CastError was thrown while dispatching a pointer event:
Null check operator used on a null value


When the exception was thrown, this was the stack:
#0 TooltipRenderingDetails._renderCartesianChartTooltip.<anonymous closure> (package:syncfusion_flutter_charts/src/common/user_interaction/tooltip_rendering_details.dart:1440:66)
#1 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:614:13)
#2 TooltipRenderingDetails._renderCartesianChartTooltip (package:syncfusion_flutter_charts/src/common/user_interaction/tooltip_rendering_details.dart:1388:16)
#3 TooltipRenderingDetails._renderTooltipView (package:syncfusion_flutter_charts/src/common/user_interaction/tooltip_rendering_details.dart:119:7)
#4 TooltipRenderingDetails.showTooltipView (package:syncfusion_flutter_charts/src/common/user_interaction/tooltip_rendering_details.dart:145:7)
#5 TooltipRenderingDetails.showTooltip (package:syncfusion_flutter_charts/src/common/user_interaction/tooltip_rendering_details.dart:136:46)
#6 TooltipRenderingDetails.internalShowByPixel (package:syncfusion_flutter_charts/src/common/user_interaction/tooltip_rendering_details.dart:843:35)
#7 TooltipBehavior.showByPixel (package:syncfusion_flutter_charts/src/common/user_interaction/tooltip.dart:611:24)
#8 TooltipBehaviorRenderer.onTouchUp (package:syncfusion_flutter_charts/src/common/user_interaction/tooltip.dart:826:48)
#9 ContainerArea._performPointerUp (package:syncfusion_flutter_charts/src/chart/base/chart_base.dart:3309:16)
#10 ContainerArea.build.<anonymous closure>.<anonymous closure> (package:syncfusion_flutter_charts/src/chart/base/chart_base.dart:2395:23)
#11 RenderPointerListener.handleEvent (package:flutter/src/rendering/proxy_box.dart:2916:27)
#12 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:425:22)
#13 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:329:11)
#14 GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:380:7)
#15 GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:344:5)
#16 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:302:7)
#17 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:285:7)
#21 _invoke1 (dart:ui/hooks.dart:170:10)
#22 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:331:7)
#23 _dispatchPointerDataPacket (dart:ui/hooks.dart:94:31)
(elided 3 frames from dart:async)
Event: PointerUpEvent#e9f15(position: Offset(105.7, 352.0))
  position: Offset(105.7, 352.0)
Target: RenderPointerListener#1ece8
  needs compositing
  parentData: <none> (can use size)
  constraints: BoxConstraints(w=338.0, h=280.0)
  size: Size(338.0, 280.0)
  behavior: deferToChild
  listeners: down, move, up, signal
====================================================================================================

3 Replies 1 reply marked as answer

SK Sriram Kiran Senthilkumar Syncfusion Team August 17, 2022 12:44 PM UTC

Hi Alexander,


We tried to replicate your issue in a simple sample with the latest version of chart widget, but the reported issue is not reproduced at our end. We have also shared the sample below for your reference. Please modify the sample as per your requirement to replicate the issue, which will help us to assist you in a better way.


Regards,

Sriram Kiran


Attachment: f176865_9f672baf.zip

Marked as answer

AM Alexander Molkenthin August 17, 2022 07:53 PM UTC

Hi Sriram, 


Thanks a lot for your sample. That solved it for me.

The issue was that I was using an older version of syncfusion charts (^20.1.60). After the update everything works perfectly.


Thanks and best regards,

Alex



SK Sriram Kiran Senthilkumar Syncfusion Team August 18, 2022 12:19 PM UTC

Hi Alexander,


Most welcome. Kindly get back to us if you have further queries. We are always happy to assist you.


Regards,

Sriram Kiran


Loader.
Up arrow icon