From ff1bbd35c55c4e3bb4afdad5f7cd0371450b715b Mon Sep 17 00:00:00 2001 From: Collin Jackson Date: Thu, 18 Jun 2015 16:36:08 -0700 Subject: [PATCH] Widgets should be stateful in order to call setState R=abarth@chromium.org, abarth Review URL: https://codereview.chromium.org/1183143012. --- sdk/lib/widgets/button_base.dart | 2 +- sdk/lib/widgets/widget.dart | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/sdk/lib/widgets/button_base.dart b/sdk/lib/widgets/button_base.dart index e0f88544b70..9fc93e9d768 100644 --- a/sdk/lib/widgets/button_base.dart +++ b/sdk/lib/widgets/button_base.dart @@ -6,7 +6,7 @@ import 'basic.dart'; abstract class ButtonBase extends Component { - ButtonBase({ String key, this.highlight: false }) : super(key: key); + ButtonBase({ String key, this.highlight: false }) : super(key: key, stateful: true); bool highlight; diff --git a/sdk/lib/widgets/widget.dart b/sdk/lib/widgets/widget.dart index 9b4001eff92..4ad23dc9787 100644 --- a/sdk/lib/widgets/widget.dart +++ b/sdk/lib/widgets/widget.dart @@ -416,7 +416,7 @@ abstract class Component extends Widget { void setState(Function fn()) { assert(!_disqualifiedFromEverAppearingAgain); - _stateful = true; + assert(_stateful); fn(); if (_isBuilding || _dirty || !_mounted) return; @@ -813,6 +813,10 @@ class WidgetSkyBinding extends SkyBinding { } abstract class App extends Component { + + // Apps are assumed to be stateful + App({ String key }) : super(key: key, stateful: true); + void _handleEvent(sky.Event event) { if (event.type == 'back') onBack();