Saya mencoba untuk menyalin kode dari Food-bit-App pada GitHub, untuk menambah kode saya. Tetapi setelah menjalankannya, saya mendapatkan kesalahan;

Tried calling: The method '[]' was called on null.
Receiver: null
Tried calling: []("image")

Saya telah mencoba memperbaikinya tetapi tidak berhasil, ini adalah kode;

class Details extends StatelessWidget {   static String page = 'details';   @override   Widget build(BuildContext context) {
    SizeConfig().init(context);
    final Map screenArguments = ModalRoute.of(context).settings.arguments;

    Map product = screenArguments['products'];
    int index = screenArguments['index'];

    return Scaffold(
      body: Stack(
        children: [
          Hero(
            tag: 'detail_food$index',
            child: Container(
              alignment: Alignment.topCenter,
              width: SizeConfig.screenWidth,
              height: SizeConfig.screenHeight,
              decoration: BoxDecoration(
                image: DecorationImage(
                  image: AssetImage(product['image']), //The error points here
                ),
              ),
            ),
          ),
          BodyDetails(),
        ],
      ),
    );   } }

Kode di atas didorong dari kelas ini (di bawah) I.E. navigator.pushnamed ...

Widget build(BuildContext context) {
    return Container(
      height: 200.0,
      child: PageView.builder(
          itemCount: this.demoFoods.length,
          itemBuilder: (context, index) {
            Map<dynamic, dynamic> product = this.demoFoods[index];
            return GestureDetector(
              onTap: () {
                Navigator.pushNamed(
                  context,
                  'details',
                  arguments: {
                    'product': product,
                    'index': index,
                  },
                );
              },
-1
Fred_Wolfe 5 April 2021, 03:10

1 menjawab

Jawaban Terbaik

Saya pikir jawabannya ada di kode Anda seperti di bawah ini di Pushnamed Anda lulus parameter sebagai berikut

'product': product,

Tetapi ketika Anda menerimanya di halaman kedua yang Anda terima seperti ini

Map product = screenArguments['products'];

Jika Anda melihat bahwa Anda menerimanya dengan (s) tetapi Anda mengirimnya tanpa ini saya pikir ini adalah kesalahan di sini

Saya harap ini bermanfaat bagi Anda

1
Mohamed Nagdy 5 April 2021, 11:47