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

home2 게시판 Flutter 게시판 setState 안하고도 화면표시내용이 바뀔 수 있나요?

setState 안하고도 화면표시내용이 바뀔 수 있나요?

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #31874

    임정섭
    참가자

    https://pub.dev/packages/speech_to_text/example 에서 speech_to_text 예제를 따라해보고 있습니다.

    Start 버튼을 누르면 startListening 함수가 실행되는데 이 안에서 setState 없이 lastWords= ' ' 로만 바꿔도 화면이 재로딩되어 기존에 있던 텍스트가 없어지게 됩니다.

    speech.listen(
    onResult: resultListener, 

    ...)

    에서 resultListener 를 따라가보면 얘는 lastWords 를 setState 를 통해 변환해서 혹시 얘 때문에 setState() 없이도 화면이 업데이트되는 효과가 있나 의심이 들었습니다. 하지만 speech.listen() 을 주석처리해보아도 lastWords= ' '가 화면에 있던 글씨를 지우는 효과를 만들어내더라구요. 

    혹시 setState() 없이도 렌더링 다시되는 특별규칙? 이 있는걸까요? 

     

     

    void startListening() {
    _logEvent('start listening');
    lastWords = '';
    lastError = '';
    // Note that listenFor is the maximum, not the minimun, on some
    // recognition will be stopped before this value is reached.
    // Similarly pauseFor is a maximum not a minimum and may be ignored
    // on some devices.
    speech.listen(
    onResult: resultListener,
    listenFor: Duration(seconds: 30),
    pauseFor: Duration(seconds: 5),
    partialResults: true,
    localeId: _currentLocaleId,
    onSoundLevelChange: soundLevelListener,
    cancelOnError: true,
    listenMode: ListenMode.confirmation);
    setState(() {});
    }

    #31895

    codingapple
    키 마스터

    아마도 강제로 재렌더링해주는 함수같은게 있을듯요 

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 호 / 개인정보관리자 : 박종흠