【问题标题】:Flutter: Dart - How to Show Stored Variable?Flutter:Dart - 如何显示存储的变量?
【发布时间】:2018-05-17 13:05:34
【问题描述】:

我有两个飞镖页面。 [1]:https://i.stack.imgur.com/D1xaf.png

在第二页中,我从网站上抓取了文本,将值存储在一个名为fetchedstring 的字符串中,它使用 console 命令行打印字符串命令print

但我希望这个字符串显示在我的飞镖主页中。

怎么做?

//DART FILE 1 HAS THE FOLLOWING CODE 
import 'package:flutter/material.dart';
import './function.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget 
{
@override
Widget build(BuildContext context) 
{
return new MaterialApp(
home: new Scaffold(
appBar: new AppBar(),
body: new Center(
child: new String(fetchedtext),//Here I Want The Fetched Text
),
),
);
}
}
//DART PAGE 2 HAS THE FOLLOWING CODE
import 'package:http/http.dart' as http;
import 'package:html/parser.dart' as parser;
import 'package:html/dom.dart';
mainz() async 
{
http.Response response = await http.get('https://www.google.com');    
Document document = parser.parse(response.body);
document.getElementsByTagName('a').forEach((Element element)
{
final String fetchedText = element.text;
print(fetchedText);
}
);
}
//I WANT THAT String "fetchedtext" to be displayed in my Dart Page1.

【问题讨论】:

  • 请添加代码来演示您尝试完成的工作以及您尝试过的工作。
  • 请编辑问题并在此处添加文本。
  • 请确保代码格式正确。如果您希望人们花时间回答您的问题,那么您应该付出一些努力来提出正确的问题。正确格式化代码是其中的一部分。
  • 我做了一些事情,最后我真的不知道如何格式化问题,抱歉,我在问题的第一行附加了一个图像文件!!!
  • 只需复制/粘贴格式化的代码。选择代码并单击工具栏中的{} 按钮。

标签: string dart flutter flutter-layout


【解决方案1】:

如果我对您正在尝试做的事情的理解是正确的,那么您需要将其粘贴到function.dart 文件的最后:

List get_elements() {
  http.Response response = await http.get('https://www.google.com');    
  Document document = parser.parse(response.body);
  document.getElementsByTagName('a').forEach((e) => print(e));
  return document.getElementsByTagName('a');
}

然后修改main.dart中的一行:

child: get_elements().first;

注意,如果你不想返回第一个找到的元素,只需先删除并使用[]选择你想要获取的元素,或者如果你想获取整个列表,只需删除.first,但是你会得到一个字符串。

【讨论】:

  • 兄弟我应用了你的代码,并显示一个错误“list函数中没有提到first作为元素>>>>让我清楚地说我的动机,程序从google获取文本数据并显示在我的笔记本电脑的控制台显示中,但我的目标是我希望这些文本显示在我的应用程序的正文中。为了显示被刮掉的文本,我试图将它们存储在一个字符串中并将它们调用回我的应用程序的脚手架体.......唯一的问题是“我不知道如何将这些文本存储在字符串/变量中并回调它们”
【解决方案2】:

使用Futurebuilder

import 'package:flutter/material.dart';
import 'dart:async';
void main() => runApp(new MyApp());

class MyApp extends StatelessWidget
{
  @override
  Widget build(BuildContext context)
  {
    var builder = FutureBuilder(
      future: mainz(),
      builder: (context, snapshot) {
        if (snapshot.hasError) {
          print(snapshot.error);
          return new Text("${snapshot.error}");
        }
        return snapshot.hasData
            ? new Center(
          child: Text(snapshot.data), //Here I Want The Fetched Text
        )
            : new CircularProgressIndicator();
      },
    );
    return new MaterialApp(
      home: new Scaffold(
        appBar: new AppBar(
          title: new Text("Title"),
        ),
        body: builder,
      )
    );
  }
}

Future<String>  mainz() async
{
  await new Future.delayed(new Duration(seconds: 3));
  return 'Sample data';
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-14
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    • 2018-04-20
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多