Beranda › Forums › Belajar Flutter Mobile Apps Tingkat Menengah › Global State –> Error ‘addNoteFn’ pada add_note_screen.dart
Tagged: #GlobalState
- This topic has 4 replies, 2 voices, and was last updated 4 years ago by Anonymous.
-
AuthorPosts
-
October 13, 2022 at 5:42 PM #170263
Halo ka,
Saya ada error pada file add_note_screen.dart yaitu pada bagian
–> final Function(Note note) addNotefn; //The final variable ‘addNoteFn’ must be initialized. ….
–> AddNoteScreen(this.addNoteFn); //Field formal parameters can only be used in a constructor. Try removing ‘this.’.variable berada pada class _AddNoteScreenState (video “global state”)
============================================================================
Berikut source code nya
============================================================================import ‘package:belajar3/models/note.dart’;
import ‘package:flutter/material.dart’;class AddNoteScreen extends StatefulWidget {
// const AddNoteScreen({super.key});@override
State<AddNoteScreen> createState() => _AddNoteScreenState();
}class _AddNoteScreenState extends State<AddNoteScreen> {
final Function(Note note) addNotefn;
AddNoteScreen(this.addNoteFn);Note _note =
Note(
id: null,
title: ”,
note: ”,
updatedAt: null,
createdAt: null
);final _formatKey = GlobalKey<FormState>();
void submitNote() {
_formatKey.currentState.save();
final now = DateTime.now();
_note = _note.copyWith(updatedAt: now, createdAt: now);
// widget.addNoteFn(_note);
Navigator.of(context).pop();
// print(‘title: ‘ + _note.title);
// print(_note.note);
}@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
actions: [TextButton(onPressed: submitNote, child: Text(‘Simpan’))],
),
body: Container(
padding: EdgeInsets.all(12),
child: Form(
key: _formatKey,
child: Column(
children: [
TextFormField(
decoration: InputDecoration(
hintText: ‘Judul’, border: InputBorder.none),
onSaved: (value) {
_note = _note.copyWith(title: value);
},
),
TextFormField(
decoration: InputDecoration(
hintText: ‘Tulisan catatan disini’,
border: InputBorder.none),
onSaved: (value) {
_note = _note.copyWith(note: value);
},
),
],
)),
),
);
}
}October 13, 2022 at 5:44 PM #170264Serta pada file home_screen.dart
terdapat error
–> MaterialPageRoute(builder: (builder) => AddNoteScreen(addNote))); //Too many positional arguments: 0 excepted, but 1 found. Try removing the extra arguments.=======================================================================
import ‘package:belajar3/models/note.dart’;
import ‘package:belajar3/screens/add_note_screen.dart’;
import ‘package:belajar3/widgets/note.grid.dart’;
import ‘package:flutter/material.dart’;class HomeScreen extends StatefulWidget {
@override
State<HomeScreen> createState() => _HomeScreenState();
}class _HomeScreenState extends State<HomeScreen> {
List<Note> _listNote = [
Note(
id: ‘N1’,
title: ‘Catatan Materi Flutter’,
note:
‘Flutter merupakan Software Development Kit (SDK) yang bisa membantu developer dalam membuat aplikasi mobile cross platform. Kelas ini akan mempelajari pengembangan aplikasi mobile yang dapat dijalankan baik di IOS maupun di Android’,
updatedAt: DateTime.parse(‘2021-05-19 20:33:33’),
createdAt: DateTime.parse(‘2021-05-19 20:33:33’),
),
Note(
id: ‘N2’,
title: ‘Target Pembelajaran Flutter’,
note:
‘Peserta dapat mengembangkan aplikasi mobile (IOS dan Android) menggunakan flutter,\nPeserta memahami konsep pengembangan aplikasi menggunakan flutter,\nPeserta dapat menjalankan aplikasi mobile di IOS dan Android ataupun Emulator,\nPeserta memahami bahasa pemrograman Dart,\nPeserta dapat mendevelop aplikasi mobile menggunakan flutter dan dart dari dasar secara berurutan.’,
updatedAt: DateTime.parse(‘2021-05-20 20:53:33’),
createdAt: DateTime.parse(‘2021-05-20 20:53:33’),
),
Note(
id: ‘N3’,
title: ‘Belajar Flutter di ITBOX’,
note: ‘Jangan lupa belajar flutter dengan video interactive di ITBOX.’,
updatedAt: DateTime.parse(‘2021-05-20 21:22:33’),
createdAt: DateTime.parse(‘2021-05-20 21:22:33’),
),
Note(
id: ‘N4’,
title: ‘Resep nasi goreng’,
note:
‘Nasi putih 1 piring\nBawang putih 2 siung, cincang halus\nKecap manis atau kecap asin sesuai selera\nSaus sambal sesuai selera\nSaus tiram sesuai selera\nGaram secukupnya\nKaldu bubuk rasa ayam atau sapi sesuai selera\nDaun bawang 1 batang, cincang halus\nTelur ayam 1 butir\nSosis ayam 1 buah, iris tipis\nMargarin atau minyak goreng 3 sdm.’,
updatedAt: DateTime.parse(‘2021-05-20 21:51:33’),
createdAt: DateTime.parse(‘2021-05-20 21:51:33’),
),
];void toggleIsPinned(String id) {
int index = _listNote.indexWhere((note) => note.id == id);
if (index >= 0) {
setState(() {
_listNote[index].isPinned = !_listNote[index].isPinned;
});
}
}void addNote(Note note) {
setState(() {
_listNote.add(note);
});
}@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(‘Notes’),
),
body: NotesGrid(_listNote, toggleIsPinned),
floatingActionButton: FloatingActionButton(
onPressed: () {
Navigator.of(context).push(
MaterialPageRoute(builder: (builder) => AddNoteScreen(addNote)));
},
child: Icon(Icons.add),
),
);
}
}October 17, 2022 at 1:34 PM #170352AnonymousHalo, saya lihat itu penempatan
final Function(Note note) addNotefn; AddNoteScreen(this.addNoteFn);salah tempat ya, bisa diperhatikan lagi di Video.
seharusnya define function dan constructornya di class AddNoteScreen yang nge extend StatefulWidgetOctober 20, 2022 at 9:18 AM #170477Baik terima kasih untuk koreksinya.
Case solvedOctober 21, 2022 at 1:31 PM #170508AnonymousSama-sama
-
AuthorPosts
- You must be logged in to reply to this topic.