Flutterの勉強をしております。入門書の内容を写経しているのですが下記ソースの部分でエラーがでてしまいます。
エラー内容
flutter assertion failed
active != false
is not true
assert部分が原因だと思うのですが、解消方法がわかりません。
写経している内容が間違えているかもチェックしたのですが、
おかしそうな部分が見つけることができませんでした。
Dart
1import 'package:flutter/material.dart'; 2 3void main() => runApp(MyApp()); 4 5} 6 7class MyApp extends StatelessWidget { 8 9 Widget build(BuildContext context) { 10 return MaterialApp( 11 title: 'Navigation', 12 home: TapParentScreen(), 13 ); 14 } 15} 16 17// アクティブの管理 18class TapParentScreen extends StatefulWidget { 19 20 _TapParentScreen createState() => _TapParentScreen(); 21} 22 23class _TapParentScreen extends State<TapParentScreen> { 24 bool _active = false; 25 26 27 Widget build(BuildContext context) { 28 return Container( 29 child: TapParentNextScreen( 30 active: _active, 31 onChanged: _haldleTapBoxChenged, 32 ), 33 ); 34 } 35 void _haldleTapBoxChenged (bool newValue) { 36 setState(() { 37 _active = newValue; 38 }); 39 } 40} 41 42class TapParentNextScreen extends StatelessWidget { 43 44 TapParentNextScreen({ Key key, this.active: false, this.onChanged }) 45 : assert(active != false), 46 assert(onChanged != null), 47 super(key: key); 48 49 final bool active; 50 final ValueChanged<bool> onChanged; 51 52 53 Widget build(BuildContext context) { 54 return GestureDetector( 55 onTap: _handleTap, 56 child: Container( 57 child: Center( 58 child: Text( 59 active ? 'Active' : 'Inactive', 60 style: TextStyle(fontSize:32.0, color: Colors.white), 61 ), 62 ), 63 width: 200.0, 64 height: 200.0, 65 decoration: BoxDecoration( 66 color: active ? Colors.lightGreen[700] : Colors.grey[600], 67 ), 68 ), 69 ); 70 71 } 72 void _handleTap () { 73 onChanged(!active); 74 } 75}
あなたの回答
tips
プレビュー