부모 구성 요소 파라미터를 수정하는 부모 구성 요소 서브 - 어셈블리 방법을 호출 플러터

메인 실현 자식 구성 요소는 부모 구성 요소 메소드는 메소드에 전달 부모 컴포넌트 서브 어셈블리이다 호출하고 서브 어셈블리 부모 인수를 수정 상위 메소드를 호출한다. 렌더링 봐

부모 구성 요소 구현

부모 요소 서면 _editParentText의 수정 요소의 방법 contentText의 조립체의 도입시의 값과 메소드에 전달

클래스는 {PageParent StatefulWidget 연장 
  @Override 
  _PageParentState createState () => _PageParentState (); 
} 

클래스 _PageParentState는 주 <PageParent> {확장 
  문자열 contentText는; 

  @Override 
  위젯 구축 (BuildContext 컨텍스트) { 
    반환 비계 ( 
      appBar : AppBar ( 
        제목 : 텍스트 ( '父级组件'), 
      ), 
      몸 : 컨테이너 ( 
        정렬 : Alignment.center, 
        아이 : 열 ( 
          어린이 : <위젯> [ 
            컨테이너 ( 
              패딩 : EdgeInsets.all (20), 
              자녀 : 열 (  
                어린이 : <위젯> [
                  텍스트 ( '这里是父级组件参数'), 
                  텍스트 ( 'contentText $ {}', 스타일 다음 텍스트 스타일 (색상 : Colors.red),) 
                , 
              ), 
            ), 
            PageChildren (editParentText : (글고) => _editParentText (글고)) // 서브 어셈블리 _editParentText () 메소드 통과 
          ] 
        ) 
      ) 
    ) 
  }  // 파라미터 변경 contentText 
  _editParentText (글고) { 
    와 setState을 (() { 
      contentText = 글고; 
    }); 
  } 
}

  

하위 페이지를 달성하는 것입니다

아이에 정의 된 페이지 editParentText를 통해 직접 그 부모를 통해 패스를 수신하고,위한 방법 widget.editParentText ( '리턴 파라미터') , 즉 호출 부모 요소 _editParentText 방법

클래스 PageChildren는 StatefulWidget {확장 
  최종 editParentText을; 
  CONST PageChildren ({키 키, this.editParentText}) : 슈퍼 (키 : 키); 
  @Override 
  _PageChildrenState createState () => _PageChildrenState (); 
} 

클래스 _PageChildrenState 상태 <PageChildren> {연장 
  TextEditingController _controller TextEditingController = (); 
  @Override 
  위젯 구축 (BuildContext 컨텍스트) { 
    컨테이너 (반환 
      Alignment.center : 정렬 
      색상 : Colors.grey, 
      아이 : 열 ( 
        <위젯> [아동 
          텍스트 ( '这里是子级组件'), 
          컨테이너 ( 
            폭 : 200 , 
            색상 : 색상 .화이트,
            마진 : EdgeInsets.symmetric (수직 : 30), 
            아이 다음 텍스트 필드 ( 
              컨트롤러 : _controller, 
            ), 
          ), 
          RaisedButton ( 
            아이 : ( '매개 변수를 수정'텍스트), 
            onPressed : () { 
              setState를 (() { 
                widget.editParentText (_controller 는 .text) // 부모의 조립 방법을 호출 
              }) 
            } 
          ) 
        ,] 
      ) 
    ) 
  } 

}

  

 

추천

출처www.cnblogs.com/gxsyj/p/11121002.html