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

provider part 2 addNote error

Beranda › Forums › Belajar Flutter Mobile Apps Tingkat Menengah › provider part 2 addNote error

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #50251
    [email protected]
    Participant

      run aplikasi jalan setelah menggunakan provider tetapi fungsi addNotenya tidak berjalan muncul error

      Exception caught by gesture ═══════════════════════════════════════════
      The following assertion was thrown while handling a gesture:
      ‘package:flutter/src/widgets/navigator.dart’: Failed assertion: line 4135 pos 12: ‘name != null’: is not true.
      package:flutter/…/widgets/navigator.dart:4135
      2

      Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
      In either case, please report this assertion by filing a bug on GitHub:
      https://github.com/flutter/flutter/issues/new?template=2_bug.md

      When the exception was thrown, this was the stack
      #2 NavigatorState._routeNamed
      package:flutter/…/widgets/navigator.dart:4135
      #3 NavigatorState.pushNamed
      package:flutter/…/widgets/navigator.dart:4212
      #4 _HomeScreenState.build.<anonymous closure>
      package:notes/screens/home_screen.dart:21
      #5 _InkResponseState._handleTap
      package:flutter/…/material/ink_well.dart:989
      #6 GestureRecognizer.invokeCallback
      package:flutter/…/gestures/recognizer.dart:182
      …

      Handler: “onTap”
      Recognizer: TapGestureRecognizer#1ba05
      debugOwner: GestureDetector
      state: possible
      won arena
      finalPosition: Offset(369.9, 648.3)
      finalLocalPosition: Offset(30.5, 36.9)
      button: 1
      sent tap down
      ════════════════════════════════════════════════════════════════════════════════

      #50253
      Anonymous

        Hi,
        ini maksutnya errornya pas tekan tombol + di home screen trus error ya?
        boleh tolong kirimin code kamu yang di file home_screen.dart dan juga di add_or_detail_screen.dart?

        #50254
        [email protected]
        Participant

          iya error pas tekan tombol +
          home_screen.dart
          import ‘package:flutter/material.dart’;
          import ‘package:notes/screens/add_or_detail_screen.dart’;
          import ‘package:notes/widgets/notes_grid.dart’;

          class HomeScreen extends StatefulWidget {
          static const routeName = ‘/addOrDetailScreen’;
          @override
          State<HomeScreen> createState() => _HomeScreenState();
          }

          class _HomeScreenState extends State<HomeScreen> {
          @override
          Widget build(BuildContext context) {
          return Scaffold(
          appBar: AppBar(
          title: Text(‘Notes’),
          ),
          body: NotesGrid(),
          floatingActionButton: FloatingActionButton(
          onPressed: () {
          Navigator.of(context).pushNamed(AddOrDetailScreen.routeName);
          },
          child: Icon(Icons.add),
          ),
          );
          }
          }

          #50255
          [email protected]
          Participant

            add_or_detail_screen.dart
            import ‘package:flutter/material.dart’;
            import ‘package:notes/models/note.dart’;
            import ‘package:notes/provider/notes.dart’;
            import ‘package:provider/provider.dart’;

            class AddOrDetailScreen extends StatefulWidget {
            static String routeName;

            @override
            State<AddOrDetailScreen> createState() => _AddOrDetailScreenState();
            }

            class _AddOrDetailScreenState extends State<AddOrDetailScreen> {
            Note _note = Note(
            id: null,
            title: ”,
            note: ”,
            updatedAt: null,
            createdAt: null,
            );
            bool init = true;
            final _formKey = GlobalKey<FormState>();

            void submitNote() {
            _formKey.currentState.save();
            final now = DateTime.now();
            _note = _note.copyWith(
            updatedAt: now,
            createdAt: now,
            );
            final notesProvider = Provider.of<Notes>(context, listen: false);
            notesProvider.addnote(_note);
            Navigator.of(context).pop();
            // print(‘title : ‘ + _note.title);
            // print(_note.note);
            }

            @override
            void didChangeDependencies() {
            if (init) {
            String id = ModalRoute.of(context).settings.arguments as String;
            _note = Provider.of<Notes>(context).getNote(id);
            init = false;
            }

            super.didChangeDependencies();
            }

            @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: _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 disini’,
            border: InputBorder.none,
            ),
            onSaved: (value) {
            _note = _note.copyWith(note: value);
            },
            ),
            ],
            ),
            ),
            ),
            );
            }
            }

            #50261
            Anonymous

              Hi,
              ini masalahnya ada di file add_or_detail_screen.dart ya, ada bagian yang kamu miss.
              pada variable static String routeName kamu harus kasi valuenya ya. karena variable tersebut yang akan menjadi patokan bagi flutternya untuk menentukan mau menampilkan halaman apa nih, karena kan di code nya Navigator.of(context).pushNamed(AddOrDetailScreen.routeName); kita suruh push berdasarkan name dan kalau variable routeNamenya null navigatornya gk akan tau harus push yang mana.
              jadi cara perbaikinnya kamu ubah variable routeName kamu menjadi ini:

              static const routeName = '/addOrDetailScreen';

              #50262
              Anonymous

                oh iya ternyata di home screen kamu
                kamu tambahin static const routeName = ‘/addOrDetailScreen’ ya
                itu seharusnya bukan di homescreen ya, tapi di file add_or_detail_screen sesuai penjelasan di postingan sebelumnya.

                nah nanti kalau di add_or_detail_screen sudah ada variable routeName dengan value ‘/addOrDetailScreen’ maka variable routeName di file/class lainnya harus diubah ya, dalam kasus ini variable routeName di homescreen kamu dihapus atau diganti ya valuenya, intinya gk boleh sama valuenya, kalau sama nanti flutternya binggung, kamu mau push layar bagian yang mana? karena ada 2 class dengan routeName yang sama

                #50273
                [email protected]
                Participant

                  terima kasih bantuannya dan penjelasannya coach

                  #50291
                  Anonymous

                    Sama-sama 👍

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