이 스 니펫이 " 'Future <dynamic>'유형은 문자열 유형의 하위 유형이 아닙니다"를 제공하는 이유는 무엇입니까?

사다트 다니엘

여기에서 WebFeed를 사용하여 웹 사이트에서 RSS 데이터를 가져 오려고합니다. 페이지가로드되는 즉시 (또는 더 나은 솔루션이있는 경우) 데이터를로드해야합니다. Stackoverflow에서 몇 가지 제안을 시도했지만 작동하지 못했습니다. 어떤 도움을 주시면 감사하겠습니다. 감사합니다.

import 'package:flutter/material.dart';
import 'dart:async';
import 'package:webfeed/webfeed.dart';
import 'package:http/http.dart' as http;

class GetNews extends StatefulWidget {
 u/override
 _GetNewsState createState() => _GetNewsState();
}

class _GetNewsState extends State<GetNews> {
 String newvar;

 u/override
 void initState() {
 super.initState();
    newvar = load();
  }

 u/override
 Widget build(BuildContext context) {
 return SafeArea(
      child: Scaffold(
        body: Center(child: Text(newvar)),
      ),
    );
  }

 Future<String> getInfo() async {
 String link = 'https://www.omgubuntu.co.uk/rss';
 var client = http.Client();
 var response = await client.get(link);
 var feed = RssFeed.parse(response.body);
 String author = feed.items.first.author;
 return author;
  }

 load() async {
 return await getInfo();
  }
}
프라 산나 쿠마르

모든 비동기 함수는 Flutter 미래 입니다. Future 함수를 String 변수에 할당하고 있습니다. 그것이 오류가 말하는 것입니다. 코드는 다음과 같아야합니다.

String newvar = "";
//
void initState() {
  super.initState();
  this.getInfo();
}
//
getInfo() async {
  String link = 'https://www.omgubuntu.co.uk/rss';
  var client = http.Client();
  var response = await client.get(link);
  var feed = RssFeed.parse(response.body);
  String author = feed.items.first.author;
  this.setState({
    newvar = author;
  });
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관