Beranda › Forums › Belajar Flutter Mobile Apps Tingkat Menengah › title dan note tidak tampil ( global state )
- This topic has 7 replies, 2 voices, and was last updated 4 years, 3 months ago by Anonymous.
-
AuthorPosts
-
July 16, 2022 at 2:52 PM #51731
hallo coach. maaf nih saya ada error title dan note tidak bisa tampil saat menekan tombil “simpan” hanya kosong saja
import ‘package:flutter/material.dart’;
import ‘package:praktik_state_management/models/note.dart’;class addNoteScreen extends StatefulWidget {
// const addNoteScreen({Key key}) : super(key: key);
final Function(Note note) addNoteFn;addNoteScreen(this.addNoteFn);
@override
State<addNoteScreen> createState() => _addNoteScreenState();
}class _addNoteScreenState extends State<addNoteScreen> {
Note _note =
Note(id: null, title: ”, note: ”, updateAt: null, createAt: null);final _formKey = GlobalKey<FormState>();
void submitNote() {
_formKey.currentState.save();
final now = DateTime.now();
_note = _note.copyWith(updateAt: now, createAt: now);
widget.addNoteFn(_note);
Navigator.pop(context);
print(_note.note);
print(_note.title);
}@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
actions: [TextButton(onPressed: submitNote, child: Text(‘Simpan’))]),
body: Container(
padding: EdgeInsets.all(10),
child: Form(
key: _formKey,
child: Column(
children: [
TextFormField(
decoration: InputDecoration(
hintText: ‘Judul’, border: InputBorder.none),
onSaved: (value) {
_note:
_note.copyWith(title: value);
},
),
TextFormField(
decoration: InputDecoration(
hintText: ‘tulis catatan di sini!’,
border: InputBorder.none),
onSaved: (value) {
_note:
_note.copyWith(note: value);
},
)
],
)),
),
);
}
}July 18, 2022 at 10:48 AM #51765AnonymousHalo,
boleh coba kirimin code kamu di file home_screen.dart dan notes_grid.dart?July 18, 2022 at 3:43 PM #51792import ‘package:flutter/material.dart’;
import ‘package:flutter/cupertino.dart’;
import ‘package:praktik_state_management/models/note.dart’;
import ‘package:praktik_state_management/screens/add_note_screen.dart’;
import ‘package:praktik_state_management/widgets/note_grid.dart’;class HomeScreen extends StatefulWidget {
//HomeScreen({Key? key}) : super(key: key);@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: NoteGrid(_listNote, toggleIsPinned),
floatingActionButton: FloatingActionButton(
onPressed: () {
Navigator.of(context).push(
MaterialPageRoute(builder: (builder) => addNoteScreen(addNote)),
);
},
child: Icon(Icons.add),
));
// Column(
// children: [
// …_listNote.map((note) => Container(
// child: Text(note.note),
// padding: EdgeInsets.all(10),
// )) // ], // ),
}
}July 18, 2022 at 3:44 PM #51793import ‘package:flutter/material.dart’;
import ‘package:flutter/cupertino.dart’;
import ‘package:praktik_state_management/models/note.dart’;
import ‘package:praktik_state_management/widgets/note_item.dart’;class NoteGrid extends StatefulWidget {
//Note({Key? key}) : super(key: key);final List<Note> listNote;
final Function(String id) toogleisPinnedFn;NoteGrid(this.listNote, this.toogleisPinnedFn);
@override
State<NoteGrid> createState() => _NoteState();
}class _NoteState extends State<NoteGrid> {
@override
Widget build(BuildContext context) {
List<Note> TempListNote =
widget.listNote.where((note) => note.isPinned).toList();
TempListNote.addAll(
widget.listNote.where((note) => !note.isPinned).toList());
return Padding(
padding: EdgeInsets.all(10),
child: GridView.builder(
// listview menampilan dan merender data yg ada di layar
itemCount: TempListNote.length,
itemBuilder: (context, index) => NoteItem(
id: TempListNote[index].id,
title: TempListNote[index].title,
note: TempListNote[index].note,
isPinned: TempListNote[index].isPinned,
toggleIsPinnedFn: widget.toogleisPinnedFn),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
crossAxisSpacing: 8,
mainAxisSpacing: 8,
),
),
);
}
}July 19, 2022 at 8:51 AM #51813AnonymousHalo, mau confirm ini error yang kamu alami itu, pas tambahin note, notenya bertambah, hanya saja title dan notenya kosong ya?
trus ini aku ketemu keanehan dicodenya
ini widgetTextFormFieldyang di file add_note_screen.dart itu bagian onsaved nyaonSaved: (value) { _note: //ini di vs codenya memang pakai <strong>:</strong> ? soalnya seharusnya pakai <strong>=</strong> _note.copyWith(title: value); },seharusnya seperti ini
onSaved: (value) { _note = _note.copyWith(title: value); },July 19, 2022 at 5:27 PM #51863siap sudah bisa coach, terima kasih.
July 19, 2022 at 5:29 PM #51864beda = sama : aja bisa beda hasil ya coach hehehe
July 21, 2022 at 7:23 PM #77564AnonymousIya betul, untuk set value ke sebuah variable selalu menggunakan = tidak bisa pakai :. 😀
-
AuthorPosts
- You must be logged in to reply to this topic.