>

코드에 문자열 값을 사용하고 싶지만 그렇게 할 수 없습니다. 설레게 도와주세요.

// Database (db) is database sqlite
// Dog class has a String field name
Text func() async{
     var dog = await db.firstDog();
     return Text(dog.name);
}

반환 유형 Text   Text 가 아닙니다 func.dart(return_of_invalid_type) 메소드에 의해 정의 된대로 .

  • 답변 # 1

    미래 사용

    예제

    Future<Text> func() async{
        String d = await getTest();
        return Text(d);
    }
    
    

  • 답변 # 2

    이 기사를 매체에서 확인하십시오. 잘 이해할 수 있습니다. 비동기 함수의 경우 Future 를 사용해야합니다  값을 반환하는 클래스입니다.

    Future<String> asyncFunc() async {
    d = await db.firstDog();
    return d.name;
    }
    
    

    그런 다음이 문자열을 사용하여 TextView 의 텍스트를 설정하십시오.

  • 답변 # 3

    전제 조건

    이 함수 호출의 위치를 ​​알려주세요 (예 : 저장소 또는 화면 레이어)

    할 수있는 작업

    <올>

    와이즈 비즈를 반환하는 대신   Text 로 , 그냥 Widget 를 반환 할 수 있습니다

    Future<String>
    
    

    이 기능을 화면이나 위젯 클래스에서 직접 사용한다고 가정하면이 작업을 수행 할 수 있습니다

    Future<String> func() async {
         var dog = await db.firstDog();
         return dog.name;
    }
    
    

    Database db = new Database(); String _dogName; @override Widget build(BuildContext context) { return Scaffold( body: Center( child: Text(_dogName), ), ); } void func() async { setState(() async { var dog = await db.firstDog(); _dogName = dog.name; }); }

  • 이전 javascript - dojo - 모든 xhr/ajax 호출은 동기식이며 다른 호출을 차단합니다
  • 다음 jquery - JS의 C #에서 얻은 뷰를 표시하는 방법은 무엇입니까?