Upgrade Skill Di ITBOX Jadi Lebih Hemat
Special Diskon 50%
Sampai 16 November 2026!
Hari
Jam
Menit
Detik
GARUDABOX

Global State –> Error ‘addNoteFn’ pada add_note_screen.dart

Beranda › Forums › Belajar Flutter Mobile Apps Tingkat Menengah › Global State –> Error ‘addNoteFn’ pada add_note_screen.dart

Tagged: 

  • This topic has 4 replies, 2 voices, and was last updated 4 years ago by Anonymous.
Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #170263
    lukman.ft75
    Participant

      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);
      },
      ),
      ],
      )),
      ),
      );
      }
      }

      #170264
      lukman.ft75
      Participant

        Serta 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),
        ),
        );
        }
        }

        #170352
        Anonymous

          Halo, 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 StatefulWidget

          #170477
          lukman.ft75
          Participant

            Baik terima kasih untuk koreksinya.
            Case solved

            #170508
            Anonymous

              Sama-sama

            Viewing 5 posts - 1 through 5 (of 5 total)
            • You must be logged in to reply to this topic.
            Shopping cart0
            There are no products in the cart!
            Continue shopping