조건에 따라 MySQL 데이터베이스에서 데이터를 검색하고 검색된 값을 배열에 추가하여 배열 값을 사용하여 ListView에 표시할 수 있는 StatefulWidget이 있습니다. 내 문제는 때때로 배열(_fileValues
) 和 _custUsername
변수가 비어 있거나 업데이트되지 않은 경우 예외가 발생하지 않는다는 것입니다.
이것은 내 상태 저장 위젯입니다(main.dart
)
UsernameGetter
클래스(이 클래스는 텍스트 필드 입력의 이메일을 기반으로 데이터베이스 테이블에서 사용자 이름을 검색합니다)
UsernameGetter
类打印 _usernameDetected
类时,它返回返回字符串的更新版本,但是当我将 _custUsername
分配给 UsernameValue
从 main.dart
클래스에서 _usernameDetected
클래스를 인쇄하면 반환된 문자열의 업데이트된 버전이 반환되지만 _custUsername
을
UsernameValue
에 할당하면 , 업데이트되지 않고 때로는 null 값을 반환합니다. NameGetter
으아아아
클래스(텍스트 열에 저장된 사용자 항목 이름 검색) NameGetter
类,与 UsernameGetter
发生相同的情况。当我从 main.dart
检索值并将值添加到 _fileValues
수업의 경우
수업에서도 마찬가지입니다.에서 값을 검색하고 _fileValues
목록에 값을 추가하면 값이 비어 있는 경우도 있고 값이 업데이트되지 않는 경우도 있습니다.
내 실수가 어디에 있는지는 모르겠지만 내가 실수를 많이 했다는 것은 확실하며 그 실수를 알아내도록 도와줄 사람이 필요합니다. 특히 목록과 변수가 업데이트되지 않거나 때로는 비어 있는 이유에 대해 설명합니다.
참조 링크:
Flutter ListView가 업데이트되지 않았습니다
🎜Flutter의 목록에 코드가 업데이트되지 않는 데 문제가 있습니다🎜 🎜플러터에서 변수 값이 새로 고쳐지지 않는 이유는 무엇인가요? 🎜P粉5216974192024-04-02 09:09:07
callData()
이 방법의 단순화된 버전은 다음과 같습니다.
앞서 언급했듯이 anotherAsyncFunction(foo)
在 someAsyncFunction()
之后、then()
之前 立即调用> 分配 foo
의 값입니다.
전략적으로 print()
문을 삽입하여 이 동작을 직접 관찰할 수 있습니다.
내부적으로 비동기 코드가 순차적으로 실행되는 코드처럼 읽힐 때 사람들이 비동기 코드의 동작을 추론하는 것이 더 쉬운 경우가 많습니다. Future.then()
和 async
/await
是同一件事。然而,当使用async
/await
를 참조하는 것이 좋습니다. async
/await
: callData()
으아아아
가 이전에 할당된 것이 분명합니다. custUsername
是在调用 NameGetter().Connection(custUsername)
비동기 프로그래밍: futures, async, wait를 꼭 읽어보세요.