• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Flutter 게시판 이 코드에서 rangeError가 납니다.

이 코드에서 rangeError가 납니다.

  • 이 주제에는 1개 답변, 2명 참여가 있으며 codingapple2 년 전에 전에 마지막으로 업데이트했습니다.
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #92553

    배성재
    참가자
    숫자가 5보다 적어야 한다고 나오는데 원인을 아시는 분...
    
    
    
    
    import 'package:flutter/material.dart';
    void main() {
      runApp(MaterialApp(home: MyApp()));
    }
    class MyApp extends StatefulWidget {
      MyApp({super.key});
      @override
      State<MyApp> createState() => _MyAppState();
    }
    class _MyAppState extends State<MyApp> {
      var total = 5;
      var name = ['김영숙', '홍길동', '피자집', '고기집', '아기집'];
      var like = [0, 0, 0, 0, 0];
      addName(a) {
        setState(() {
          name.add(a);
        });
      }
      addOne() {
        setState(() {
          total++;
        });
      }
      @override
      build(context) {
        return Scaffold(
          floatingActionButton: FloatingActionButton(
            onPressed: () {
              showDialog(
                  context: context,
                  builder: (context) {
                    return DialogUI(
                        state: total, state2: name, addOne: addOne, addName: addName);
                  });
            },
          ),
          appBar: AppBar(title: Text(total.toString())),
          body: ListView.builder(
              itemCount: name.length,
              itemBuilder: (c, i) {
                return ListTile(
                  leading: Text(like[i].toString()),
                  title: Text(name[i]),
                  trailing: ElevatedButton(
                    child: Text('좋아요'),
                    onPressed: () {
                      setState(() {
                        like[i]++;
                      });
                    },
                  ),
                );
              }),
        );
      }
    }
    class DialogUI extends StatelessWidget {
      DialogUI({Key? key, this.state, this.state2, this.addOne, this.addName})
          : super(key: key);
      final state;
      final state2;
      final addOne;
      final addName;
      var inputData = TextEditingController();
      @override
      Widget build(BuildContext context) {
        return Dialog(
            child: Container(
                padding: EdgeInsets.all(20),
                width: 400,
                height: 300,
                child:
                    Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
                  Text(
                    'Contact',
                    style: TextStyle(
                        fontWeight: FontWeight.bold,
                        fontSize: 40,
                        color: Colors.black),
                  ),
                  Text(
                    '번호를 입력하세요',
                    style: TextStyle(
                        fontWeight: FontWeight.bold,
                        fontSize: 20,
                        color: Colors.black),
                  ),
                  Container(width: 300, child: TextField(controller: inputData)),
                  Row(
                    mainAxisAlignment: MainAxisAlignment.end,
                    children: [
                      ElevatedButton(
                          onPressed: () {
                            Navigator.of(context).pop();
                          },
                          child: Text("Cancel")),
                      ElevatedButton(
                          onPressed: () {
                            Navigator.of(context).pop();
                            addOne();
                            addName(inputData.text);
                          },
                          child: Text(state.toString()))
                    ],
                  ),
                ])));
      }
    }
    
    #92558

    codingapple
    키 마스터
    name에 항목 1개 추가했는데 like는 1개 추가가 안되어서 그럴수도요
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠