2017-10-13 10 views
1

지난 두 일 동안이 오류가 '_elements.contains(element)': is not true. 인 것을보고 있습니다. 처음부터이 작업은 절대적으로 잘 진행되었습니다. 나는이 말을하는 것을 유감스럽게 생각하지만이 오류에 관한 단서가 없다. 그러나 나는이 오류의 원인이되는 것을 놓치고 있다고 생각한다. 또한, 같은 페이지를 새로 고침 할 때 레이아웃이 채워지지만 예외가 발생합니다.오류 : '_elements.contains (element)': 사실이 아닙니다.

간헐적으로 이것은 Duplicate GlobalKeys()가 감지되었음을 보여 주지만 간혹 처음에는 발견되지 않았습니다.

전에이 오류가 발생하면 누군가 나를 도울 수 있습니까? 동일한 문제를 재연하기위한 예제를 실제로 작성할 수는 없습니다. 많은 감사합니다. 나는 내 응용 프로그램에서 할 노력하고 무엇의 샘플 예제를 포함했다

Performing hot reload... 
I/flutter (22248): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY 
╞═══════════════════════════════════════════════════════════ 
I/flutter (22248): The following assertion was thrown building 
TickerMode(mode: disabled): 
I/flutter (22248): 'package:flutter/src/widgets/framework.dart': Failed 
assertion: line 1766 pos 12: 
I/flutter (22248): '_elements.contains(element)': is not true. 
I/flutter (22248): 
I/flutter (22248): Either the assertion indicates an error in the framework 
itself, or we should provide substantially 
I/flutter (22248): more information in this error message to help you 
determine and fix the underlying cause. 
I/flutter (22248): In either case, please report this assertion by filing a 
bug on GitHub: 
I/flutter (22248): https://github.com/flutter/flutter/issues/new 
I/flutter (22248): 
I/flutter (22248): When the exception was thrown, this was the stack: 
I/flutter (22248): #2  _InactiveElements.remove 
(package:flutter/src/widgets/framework.dart:1766:12) 
I/flutter (22248): #3  Element._retakeInactiveElement 
(package:flutter/src/widgets/framework.dart:2850:29) 
I/flutter (22248): #4  Element.inflateWidget 
(package:flutter/src/widgets/framework.dart:2873:32) 
I/flutter (22248): #5  Element.updateChild 
(package:flutter/src/widgets/framework.dart:2688:12) 
I/flutter (22248): #6  ComponentElement.performRebuild 
(package:flutter/src/widgets/framework.dart:3557:16) 
I/flutter (22248): #7  Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5) 
I/flutter (22248): #8  ProxyElement.update 
(package:flutter/src/widgets/framework.dart:3792:5) 
I/flutter (22248): #9  Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15) 
I/flutter (22248): #10  RenderObjectElement.updateChildren 
(package:flutter/src/widgets/framework.dart:4262:32) 
I/flutter (22248): #11  _TheatreElement.update 
(package:flutter/src/widgets/overlay.dart:508:17) 
I/flutter (22248): #12  Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15) 
I/flutter (22248): #13  ComponentElement.performRebuild 
(package:flutter/src/widgets/framework.dart:3557:16) 
I/flutter (22248): #14  Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5) 
I/flutter (22248): #15  StatefulElement.update 
(package:flutter/src/widgets/framework.dart:3682:5) 
I/flutter (22248): #16  Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15) 
I/flutter (22248): #17  ComponentElement.performRebuild 
(package:flutter/src/widgets/framework.dart:3557:16) 
I/flutter (22248): #18  Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5) 
I/flutter (22248): #19  ProxyElement.update 
(package:flutter/src/widgets/framework.dart:3792:5) 
I/flutter (22248): #20  Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15) 
I/flutter (22248): #21  SingleChildRenderObjectElement.update 
(package:flutter/src/widgets/framework.dart:4535:14) 
I/flutter (22248): #22  Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15) 
I/flutter (22248): #23  ComponentElement.performRebuild 
(package:flutter/src/widgets/framework.dart:3557:16) 
I/flutter (22248): #24  Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5) 
I/flutter (22248): #25  StatefulElement.update 
(package:flutter/src/widgets/framework.dart:3682:5) 
I/flutter (22248): #26  Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15) 
I/flutter (22248): #27  SingleChildRenderObjectElement.update 
(package:flutter/src/widgets/framework.dart:4535:14) 
I/flutter (22248): #28  Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15) 
I/flutter (22248): #29  SingleChildRenderObjectElement.update 
(package:flutter/src/widgets/framework.dart:4535:14) 
I/flutter (22248): #30  Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15) 
I/flutter (22248): #31  ComponentElement.performRebuild 
(package:flutter/src/widgets/framework.dart:3557:16) 
I/flutter (22248): #32  Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5) 
I/flutter (22248): #33  StatefulElement.update 
(package:flutter/src/widgets/framework.dart:3682:5) 
I/flutter (22248): #34  Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15) 
I/flutter (22248): #35  ComponentElement.performRebuild 
(package:flutter/src/widgets/framework.dart:3557:16) 
I/flutter (22248): #36  Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5) 
I/flutter (22248): #37  ProxyElement.update 
(package:flutter/src/widgets/framework.dart:3792:5) 
I/flutter (22248): #38  Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15) 
I/flutter (22248): #39  SingleChildRenderObjectElement.update 
(package:flutter/src/widgets/framework.dart:4535:14) 
I/flutter (22248): #40  Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15) 
I/flutter (22248): #41  ComponentElement.performRebuild 
(package:flutter/src/widgets/framework.dart:3557:16) 
I/flutter (22248): #42  Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5) 
I/flutter (22248): #43  StatelessElement.update 
(package:flutter/src/widgets/framework.dart:3607:5) 
I/flutter (22248): #44  Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15) 
I/flutter (22248): #45  ComponentElement.performRebuild 
(package:flutter/src/widgets/framework.dart:3557:16) 
I/flutter (22248): #46  Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5) 
I/flutter (22248): #47  StatelessElement.update 
(package:flutter/src/widgets/framework.dart:3607:5) 
I/flutter (22248): #48  Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15) 
I/flutter (22248): #49  ComponentElement.performRebuild 
(package:flutter/src/widgets/framework.dart:3557:16) 
I/flutter (22248): #50  Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5) 
I/flutter (22248): #51  StatelessElement.update 
(package:flutter/src/widgets/framework.dart:3607:5) 
I/flutter (22248): #52  Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15) 
I/flutter (22248): #53  ComponentElement.performRebuild 
(package:flutter/src/widgets/framework.dart:3557:16) 
I/flutter (22248): #54  Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5) 
I/flutter (22248): #55  StatelessElement.update 
(package:flutter/src/widgets/framework.dart:3607:5) 
I/flutter (22248): #56  Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15) 
I/flutter (22248): #57  ComponentElement.performRebuild            
(package:flutter/src/widgets/framework.dart:3557:16) 
I/flutter (22248): #58  Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5) 
I/flutter (22248): #59  ProxyElement.update 
(package:flutter/src/widgets/framework.dart:3792:5) 
I/flutter (22248): #60  Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15) 
    I/flutter (22248): #61  ComponentElement.performRebuild 
(package:flutter/src/widgets/framework.dart:3557:16) 
I/flutter (22248): #62  Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5) 
I/flutter (22248): #63  ProxyElement.update 
(package:flutter/src/widgets/framework.dart:3792:5) 
    I/flutter (22248): #64  Element.updateChild 
    (package:flutter/src/widgets/framework.dart:2677:15) 
    I/flutter (22248): #65  ComponentElement.performRebuild 
    (package:flutter/src/widgets/framework.dart:3557:16) 
      I/flutter (22248): #66  Element.rebuild 
    (package:flutter/src/widgets/framework.dart:3446:5) 
    I/flutter (22248): #67  StatefulElement.update 
    (package:flutter/src/widgets/framework.dart:3682:5) 
    I/flutter (22248): #68  Element.updateChild 
    (package:flutter/src/widgets/framework.dart:2677:15) 
    I/flutter (22248): #69  ComponentElement.performRebuild 
    (package:flutter/src/widgets/framework.dart:3557:16) 
    I/flutter (22248): #70  Element.rebuild 
    (package:flutter/src/widgets/framework.dart:3446:5) 
    I/flutter (22248): #71  ProxyElement.update 
    (package:flutter/src/widgets/framework.dart:3792:5) 
    I/flutter (22248): #72  Element.updateChild 
    (package:flutter/src/widgets/framework.dart:2677:15) 
    I/flutter (22248): #73  ComponentElement.performRebuild 
    (package:flutter/src/widgets/framework.dart:3557:16) 
    I/flutter (22248): #74  Element.rebuild 
    (package:flutter/src/widgets/framework.dart:3446:5) 
    I/flutter (22248): #75  StatefulElement.update 
(package:flutter/src/widgets/framework.dart:3682:5) 
    I/flutter (22248): #76  Element.updateChild 
(package:flutter/src/widgets/framework.dart:2677:15) 
I/flutter (22248): #77  ComponentElement.performRebuild 
    (package:flutter/src/widgets/framework.dart:3557:16) 
    I/flutter (22248): #78  Element.rebuild 
    (package:flutter/src/widgets/framework.dart:3446:5) 
    I/flutter (22248): #79  ProxyElement.update 
    (package:flutter/src/widgets/framework.dart:3792:5) 
    I/flutter (22248): #80  Element.updateChild 
    (package:flutter/src/widgets/framework.dart:2677:15) 
I/flutter (22248): #81  ComponentElement.performRebuild 
    (package:flutter/src/widgets/framework.dart:3557:16) 
    I/flutter (22248): #82  Element.rebuild 
    (package:flutter/src/widgets/framework.dart:3446:5) 
     I/flutter (22248): #83  ProxyElement.update 
    (package:flutter/src/widgets/framework.dart:3792:5) 
    I/flutter (22248): #84  Element.updateChild 
    (package:flutter/src/widgets/framework.dart:2677:15) 
    I/flutter (22248): #85  ComponentElement.performRebuild 
    (package:flutter/src/widgets/framework.dart:3557:16) 
     I/flutter (22248): #86  Element.rebuild 
(package:flutter/src/widgets/framework.dart:3446:5) 
    I/flutter (22248): #87  StatelessElement.update 
    (package:flutter/src/widgets/framework.dart:3607:5) 
    I/flutter (22248): #88  Element.updateChild 
    (package:flutter/src/widgets/framework.dart:2677:15) 
    I/flutter (22248): #89  ComponentElement.performRebuild 
    (package:flutter/src/widgets/framework.dart:3557:16) 
    I/flutter (22248): #90  Element.rebuild 
    (package:flutter/src/widgets/framework.dart:3446:5) 
    I/flutter (22248): #91  StatefulElement.update 
    (package:flutter/src/widgets/framework.dart:3682:5) 
    I/flutter (22248): #92  Element.updateChild 
    (package:flutter/src/widgets/framework.dart:2677:15) 
    I/flutter (22248): #93  ComponentElement.performRebuild 
    (package:flutter/src/widgets/framework.dart:3557:16) 
    I/flutter (22248): #94  Element.rebuild 
    (package:flutter/src/widgets/framework.dart:3446:5) 
    I/flutter (22248): #95  ProxyElement.update 
    (package:flutter/src/widgets/framework.dart:3792:5) 
    I/flutter (22248): #96  Element.updateChild 
    (package:flutter/src/widgets/framework.dart:2677:15) 
    I/flutter (22248): #97  ComponentElement.performRebuild 
    (package:flutter/src/widgets/framework.dart:3557:16) 
    I/flutter (22248): #98  Element.rebuild 
    (package:flutter/src/widgets/framework.dart:3446:5) 
    I/flutter (22248): #99  BuildOwner.buildScope 
    (package:flutter/src/widgets/framework.dart:2246:33) 
     I/flutter (22248): #100  












     BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&Renderer 
    Binding&WidgetsBinding.drawFrame 
     (package:flutter/src/widgets/binding.dart:580:20) 
     I/flutter (22248): #101  





    BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&Renderer 
    Binding._handlePersistentFrameCallback 
    (package:flutter/src/rendering/binding.dart:200:5) 
    I/flutter (22248): #102  
    BindingBase&SchedulerBinding._invokeFrameCallback 
    (package:flutter/src/scheduler/binding.dart:713:15) 
    I/flutter (22248): #103 BindingBase&SchedulerBinding.handleDrawFrame 
    (package:flutter/src/scheduler/binding.dart:649:9) 
    I/flutter (22248): #104  




    BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&Renderer 
    Binding.scheduleWarmUpFrame.<anonymous closure> 
    (package:flutter/src/rendering/binding.dart:286:20) 
    I/flutter (22248): #106 _Timer._runTimers (dart:isolate- 
     patch/dart:isolate/timer_impl.dart:367) 
     I/flutter (22248): #107 _Timer._handleMessage (dart:isolate- 
    patch/dart:isolate/timer_impl.dart:401) 
    I/flutter (22248): #108 _RawReceivePortImpl._handleMessage 
     (dart:isolate-patch/dart:isolate/isolate_patch.dart:163) 
     I/flutter (22248): (elided 3 frames from class _AssertionError and 
     package dart:async-patch) 
     I/flutter (22248): 

    ══════════════════════════════════════════════════════════════════════════ 
    ══════════════════════════ 
    Reloaded 0 of 492 libraries in 823ms. 

다음과 같이

나는 오류 정보를 제공했다.

main.dart

import 'package:flutter/rendering.dart'; 
import 'package:flutter/material.dart'; 
import 'package:untitled3/secondwidget.dart'; 

void main() { 
    runApp(
    new Example(), 
); 
} 

class Example extends StatefulWidget { 
    @override 
    _ExampleState createState() => new _ExampleState(); 
} 

class _ExampleState extends State<Example> { 
    int noOfBranches; 

    @override 
    void initState() { 
    super.initState(); 
    getCount(); 
    } 

    void getCount() { 
    print('list builder count is ${noOfBranches}'); 
    } 

    @override 
    Widget build(BuildContext context) { 
    setState(() { 
     noOfBranches = 2; 
    }); 

    return new MaterialApp(
     home: new Scaffold(
     body: new ListView.builder(
     itemCount: noOfBranches, 
     itemBuilder: (BuildContext context, int index) { 
      return new Card(
      child: new FlatButton(
       onPressed: (() { 
        Navigator.push(
         context, 
         new MaterialPageRoute(
          builder: (_) => new SecondWidget())); 
       }), 
       child: new Text('Next Widget')), 
     ); 
     }), 
    ), 
    ); 
    } 
} 

secondwidget.dart

import 'package:flutter/material.dart'; 
import 'package:flutter/rendering.dart'; 

    class SecondWidget extends StatefulWidget { 
    @override 
_SecondWidgetState createState() => new _SecondWidgetState(); 
} 

class _SecondWidgetState extends State<SecondWidget> { 
    @override 
    Widget build(BuildContext context) { 
    return new Container(
     child: new Text('Second Widget'), 
    ); 
    } 
} 

setState()@override Widget build(BuildContext context) { setState(() { noOfBranches = 2; }); ..... } 내부의 예제 main.dart 파일에 주어진 선언하는 경우 내 응용 프로그램에서 오류가 표시되지 않습니다

안에 setState()을 선언하는 경우에만이 오류가 표시됩니다.기능.

이유가 확실하지 않습니다.

저는 실제로이 오류에 2 일 동안 고착되어 도움을 주시면 감사하겠습니다.

많은 덕분에, 마히

+0

자세한 정보가 필요합니다. 약간의 코드를 추가하는 것이 좋습니다. – Darky

+0

@Darky 답장을 보내 주셔서 감사합니다. 예, 코드를 작성하는 것이 좋겠지 만 여기에 게시 할 수없는 긴 코드가 있습니다. 따라서이 오류를 일으키는 시나리오에 대해 생각해 주시면 감사하겠습니다. – Mahi

+0

적어도 당신이하고있는 일을 설명하려고 할 수 있습니까? 혼자의 오류 메시지에서 그것은 당신을 도울 꽤 어렵습니다 ... –

답변

0

내가 좀 이제 응용 프로그램은 아무 문제없이 절대적으로 잘 실행되고있는

@override 
    Widget build(BuildContext context) { 
    setState(() { 
     noOfBranches = 2; 
    }); 
    print('noof branches inside widget build = $noOfBranches'); 
..... 
} 

내부 setState()를 선언하여 오류를 해결 생각합니다. 프로그래밍에 익숙하지 않아 더 많은 제안이 있으면 더 많은 것을 배우게되어 매우 기쁩니다. 유일한 문제는 setState()이 컨텍스트를 수정하고 버튼을 클릭하여 다른 위젯을 호출 할 때이 오류 메시지와 함께 발생하는 것입니다.

많은 감사, Mahi.

0

noOfBranches 변수를 initState 방법으로 설정하지 않는 이유는 무엇입니까?

@override 
void initState() { 
    super.initState(); 
    noOfBranches = 2; 
} 
+0

감사합니다 Rainer, 나는 그것을 시도했지만 initState()가 한번 호출 된 것은 위젯이 다음 번 트리에 들어가서 다시 돌아와서 버튼을 다시 클릭했을 때 '_dependents.isEmpty' : 사실이 아닙니다. 이 솔루션은 제 경우에 잘 작동하는 것 같습니다. – Mahi