当我将值从主页传递到源页面时,它显示了一个错误:参数类型“Future”无法分配给参数类型“uluFunction()”。(argument_type_not_assignable[strong text]lib\home.dart:15)
我哪里做错了??
主页-
import 'package:flutter/material.dart';
import 'sourceScreen.dart';
class Home extends StatefulWidget {
int value;
Home({this.value});
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: FlatButton(
onPressed: Navigator.push(context, MaterialPageRoute(builder: (context)=>SourceScreen({value:value}))), child: null,
),
),
);
}
}
下面的页面是我想使用主页值的地方-
import 'package:flutter/material.dart';
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'models/model.dart';
import 'models/card.dart';
import 'article.dart';
final API_KEY = '***';
Future<List<Source>> fetchNewsSource() async {
final response = await http.get(
'https://newsapi.org/v2/sources?language=en&country=in&apiKey=$API_KEY');
if (response.statusCode == 200) {
List sources = json.decode(response.body)['sources'];
return sources.map((source) => new Source.formJson(source)).toList();
} else {
throw Exception('Fail to load data');
}
}
class SourceScreen extends StatefulWidget {
@override
_SourceScreenState createState() => _SourceScreenState();
}
class _SourceScreenState extends State<SourceScreen> {
var list_source;
var refreshKey = GlobalKey<RefreshIndicatorState>();
@override
void initState() {
super.initState();
refreshListSource();
}
Future<Null> refreshListSource() async {
refreshKey.currentState?.show(atTop: false);
setState(() {
list_source = fetchNewsSource();
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
backgroundColor: Color.fromRGBO(58, 66, 86, 1.0),
appBar: AppBar(
elevation: 1.0,
backgroundColor: Color.fromRGBO(58, 66, 86, 1.0),
title: Text('uTTerNews'),
),
body: Center(
child: RefreshIndicator(
child: FutureBuilder<List<Source>>(
future: list_source,
builder: (context, snapshot) {
if (snapshot.hasError) {
Text('Error: ${snapshot.error}');
} else if (snapshot.hasData) {
List<Source> sources = snapshot.data;
return new ListView(
children: sources
.map((source) =>
GestureDetector(
onTap: () {
Navigator.push(context, MaterialPageRoute(
builder: (context) =>
articleScreen(source: source,)));
},
child: card(source),
))
.toList());
}
return CircularProgressIndicator();
},
),
onRefresh: refreshListSource),
),
),
);
}
}
@CopsOnRoad -- Here is the sample code that is working for me.
*Answer.dart file*
import 'package:flutter/material.dart';
class Answer extends StatelessWidget {
final Function selectHandler;
// ignore: use_key_in_widget_constructors
const Answer(this.selectHandler);
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
child: RaisedButton(
color: Colors.grey,
textColor: Colors.black,
child: Text('Answer 1'),
**onPressed: () => selectHandler()**,
),
);
}
}
*Main.dart file snippet*
@override
Widget build(BuildContext context) {
var questions = [
'What\'s your favorite color?',
'What\'s your favorite animal?'
];
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text(questions[_questionIndex]),
),
body: Column(
children: <Widget>[
Question(questions[_questionIndex]),
**Answer(_answerQuestion)**,
Answer(_answerQuestion),
Answer(_answerQuestion),
],
),
),
);
}
}
这个在最新版本中对我有效
onPressed: () {
selectHandler();
},
代替
onPressed: Navigator.push(...)
与
onPressed: () => Navigator.push(...)
如果你需要使用wait
关键字,你可以这样做
onPressed: () async {
await Navigator.push(...);
await anyOtherMethod();
}
我对弗利特和我是新手;我一直在尝试开发一款带有PHP API后端的应用程序。在无数的答案和在线研究中,我无法找到解决我所面临问题的方法。我希望有人能告诉我我做错了什么。 我试图从API中获取数据,并将其显示在卡中。下面是我的代码: 希望能得到一些帮助。非常感谢。
你好,我在小部件上的以下代码中出错 参数类型'List 这是我的代码 我的代码与上面的图表插件不兼容吗?如何解决这个问题?
我对这个flutter简单图表代码有问题。在我尝试运行代码时显示此错误。有人能帮我吗...... 参数类型'List 这是代码示例:
我试图制作一个简单的饼图,但在工厂构造函数中使用未来的数据时遇到了问题。错误信息显示: 预期有2个位置参数,但找到1个。 参数类型“未来” 以下是代码: 编辑:我能够使用Future Builder修复此问题。我的代码更改:
参数类型“List”不能分配给参数类型“Widget?函数(BuildContext, int)”。 缺少选择器,如“”。标识符“”或“[0]”。 参数类型“库比蒂诺列表”不能分配给参数类型“动态函数(动态)”。 未定义的名称“e”。 未定义的类's'。 应找到“;”。 我正在克服错误。如何解决这个问题 选择\u county。飞奔 国家代码。json