4 글 보임 - 1 에서 4 까지 (총 4 중에서)
-
글쓴이글
-
2023년 7월 12일 12:02 #90597
쌔뮤얼참가자import 'package:flutter/material.dart'; import './style.dart'; import 'package:http/http.dart' as http; import 'dart:convert'; import 'package:flutter/rendering.dart';
void main() { runApp( MaterialApp( theme:theme, home: MyApp() ) ); }
class MyApp extends StatefulWidget { const MyApp({super.key});
@override State<MyApp> createState() => _MyAppState(); }
class _MyAppState extends State<MyApp> { var tab = 0; var data = [];
addData(a) { setState(() { data.add(a); }); }
getData() async { var result = await http.get( Uri.parse('https://codingapple1.github.io/app/data.json') ); var result2 = jsonDecode(result.body); setState(() { data = result2; }); }
@override void initState() { // TODO: implement initState super.initState(); getData(); }
@override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Instagram'), actions: [ IconButton( onPressed: (){}, iconSize: 30, icon: Icon(Icons.add_box_outlined)), ]), body: [Home(data : data), Text('shop')]
, bottomNavigationBar: BottomNavigationBar( showSelectedLabels: false, showUnselectedLabels: false, onTap: (i){ setState(() { tab = i; }); }, items: [ BottomNavigationBarItem( label : "home", icon: Icon(Icons.home_outlined)), BottomNavigationBarItem( label: "shop", icon: Icon(Icons.shopping_bag_outlined)) ], ),); } }
class Home extends StatefulWidget { const Home ({Key? key, this.data, this.addData}) : super(key: key); final data; final addData;
@override State<Home> createState() => _HomeState(); }
class _HomeState extends State<Home> { var scroll = ScrollController();
getMore() async { var result = await http.get(Uri.parse("https://codingapple1.github.io/app/more1.json")); var result2 = jsonDecode(result.body); widget.addData(result2); }
@override void initState() { // TODO: implement initState super.initState(); scroll.addListener(() { print(getMore()); if (scroll.position.pixels == scroll.position.maxScrollExtent){ getMore(); } }); }
@override Widget build(BuildContext context) { if(widget.data.isNotEmpty) { return ListView.builder(itemCount: widget.data.length, controller: scroll, itemBuilder: (c, i){ return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Image.network(widget.data[i]['image']), Text('좋아요 ${widget.data[i]['likes']}'), Text(widget.data[i]['date']), Text(widget.data[i]['content']), ], ); }); } else { return CircularProgressIndicator(); } } }
E/flutter (11861): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: NoSuchMethodError: The method 'call' was called on null. E/flutter (11861): Receiver: null E/flutter (11861): Tried calling: call(_Map len:7) E/flutter (11861): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:38:5) E/flutter (11861): #1 _HomeState.getMore (package:instagram/main.dart:97:19) E/flutter (11861): <asynchronous suspension>
어떻게 해결해야하는지 모르겠습니다.
-
글쓴이글
4 글 보임 - 1 에서 4 까지 (총 4 중에서)
- 답변은 로그인 후 가능합니다.