-
-
Save Sfshaza/bc5547e112e4dc3a1aa87afdf917caeb to your computer and use it in GitHub Desktop.
// Step 6: Navigate to a new route | |
import 'package:flutter/material.dart'; | |
import 'package:english_words/english_words.dart'; | |
void main() => runApp(new MyApp()); | |
class MyApp extends StatelessWidget { | |
@override | |
Widget build(BuildContext context) { | |
return new MaterialApp( | |
title: 'Startup Name Generator', | |
home: new RandomWords(), | |
); | |
} | |
} | |
class RandomWords extends StatefulWidget { | |
@override | |
createState() => new RandomWordsState(); | |
} | |
class RandomWordsState extends State<RandomWords> { | |
final _suggestions = <WordPair>[]; | |
final _saved = new Set<WordPair>(); | |
final _biggerFont = const TextStyle(fontSize: 18.0); | |
@override | |
Widget build(BuildContext context) { | |
return new Scaffold( | |
appBar: new AppBar( | |
title: new Text('Startup Name Generator'), | |
actions: <Widget>[ | |
new IconButton(icon: new Icon(Icons.list), onPressed: _pushSaved) | |
], | |
), | |
body: _buildSuggestions(), | |
); | |
} | |
Widget _buildSuggestions() { | |
return new ListView.builder( | |
padding: const EdgeInsets.all(16.0), | |
itemBuilder: (context, i) { | |
if (i.isOdd) return new Divider(); | |
final index = i ~/ 2; | |
if (index >= _suggestions.length) { | |
_suggestions.addAll(generateWordPairs().take(10)); | |
} | |
return _buildRow(_suggestions[index]); | |
}, | |
); | |
} | |
Widget _buildRow(WordPair pair) { | |
final alreadySaved = _saved.contains(pair); | |
return new ListTile( | |
title: new Text( | |
pair.asPascalCase, | |
style: _biggerFont, | |
), | |
trailing: new Icon( | |
alreadySaved ? Icons.favorite : Icons.favorite_border, | |
color: alreadySaved ? Colors.red : null, | |
), | |
onTap: () { | |
setState( | |
() { | |
if (alreadySaved) { | |
_saved.remove(pair); | |
} else { | |
_saved.add(pair); | |
} | |
}, | |
); | |
}, | |
); | |
} | |
void _pushSaved() { | |
Navigator.of(context).push( | |
new MaterialPageRoute( | |
builder: (context) { | |
final tiles = _saved.map( | |
(pair) { | |
return new ListTile( | |
title: new Text( | |
pair.asPascalCase, | |
style: _biggerFont, | |
), | |
); | |
}, | |
); | |
final divided = ListTile | |
.divideTiles( | |
context: context, | |
tiles: tiles, | |
) | |
.toList(); | |
return new Scaffold( | |
appBar: new AppBar( | |
title: new Text('Saved Suggestions'), | |
), | |
body: new ListView(children: divided), | |
); | |
}, | |
), | |
); | |
} | |
} |
Facing the same issue as @kilroyjones
No problem from my side.
I was going through the tutorial and got to this step and was thinking I did something wrong, but then I copy pasted this in and got the error below.
I/flutter (10902): #101 BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:621:20) I/flutter (10902): #102 BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:208:5) I/flutter (10902): #103 BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15) I/flutter (10902): #104 BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:930:9) I/flutter (10902): #105 BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:751:7) I/flutter (10902): #107 _Timer._runTimers (dart:isolate-patch/dart:isolate/timer_impl.dart:382) I/flutter (10902): #108 _Timer._handleMessage (dart:isolate-patch/dart:isolate/timer_impl.dart:416) I/flutter (10902): #109 _RawReceivePortImpl._handleMessage (dart:isolate-patch/dart:isolate/isolate_patch.dart:165) I/flutter (10902): (elided one frame from package dart:async-patch) I/flutter (10902):
restart application
flutter: ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
flutter: The following assertion was thrown building TickerMode(mode: disabled):
flutter: 'package:flutter/src/widgets/framework.dart': Failed assertion: line 1732 pos 12:
flutter: '_elements.contains(element)': is not true.
flutter:
flutter: Either the assertion indicates an error in the framework itself, or we should provide substantially
flutter: more information in this error message to help you determine and fix the underlying cause.
flutter: In either case, please report this assertion by filing a bug on GitHub:
flutter: https://github.com/flutter/flutter/issues/new
....
flutter: #101 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2255:33)
flutter: #102 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:653:20)
flutter: #103 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:208:5)
flutter: #104 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15)
flutter: #105 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:930:9)
flutter: #106 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.scheduleWarmUpFrame. (package:flutter/src/scheduler/binding.dart:751:7)
flutter: #108 _Timer._runTimers (dart:isolate/runtime/libtimer_impl.dart:382:19)
flutter: #109 _Timer._handleMessage (dart:isolate/runtime/libtimer_impl.dart:416:5)
flutter: #110 _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:171:12)
flutter: (elided 3 frames from class _AssertionError and package dart:async)
flutter: ════════════════════════════════════════════════════════════════════════════════════════════════════
restart application is ok.
Formatting code that has a problem
"message": "Missing type arguments for generic method 'push'.\nTry adding an explicit type like 'dynamic', or enable implicit-dynamic in your analysis options file."
Navigator.of(context).push, how to define context ?
Navigator.of(context).push, how to define context ?
You should define methods "_pushSaved" in the class "RandomWordsState"
Navigator.of(context).push, how to define context ?
remove the import 'dart:js';
https://stackoverflow.com/questions/62552684/why-cant-argument-type-jsobject-be-assigned-to-the-parameter-type-buildconte
I was going through the tutorial and got to this step and was thinking I did something wrong, but then I copy pasted this in and got the error below.