【发布时间】:2021-12-18 12:03:22
【问题描述】:
我想在 Flutter 中使用变异 graphql。 但我有这个按摩,我无法加载我的代码。
这是我的代码:
import 'package:flutter/material.dart';
import 'package:graphql_flutter/graphql_flutter.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
final HttpLink httpLink = HttpLink(
'https://test.podkadeh.ir/graphql/',
);
final ValueNotifier<GraphQLClient> client= ValueNotifier<GraphQLClient>(
GraphQLClient(
link: httpLink,
cache: GraphQLCache(),
)
);
return GraphQLProvider(
child: HomePage(),
client: client,
);
}
}
class HomePage extends StatelessWidget {
TextEditingController nameController = TextEditingController();
TextEditingController emailController = TextEditingController();
TextEditingController passwordController = TextEditingController();
String createUser = '''
mutation createUser{
createUser(userInput: {Email: "$String", Password: "$String"}){
Name,
Email
}
}
''';
@override
Widget build(BuildContext context) {
return MaterialApp(
home: SingleChildScrollView(
child: Column(
children: [
Mutation(
options: MutationOptions(
document: gql(createUser),
),
builder:(
RunMutation insert,
QueryResult? result,
){
return
Column(
children: [
TextField(
decoration: InputDecoration(hintText: "Name"),
controller: nameController,
),
TextField(
decoration: InputDecoration(hintText: "Email"),
controller: emailController,
),
TextField(
decoration: InputDecoration(hintText: "Password"),
controller: passwordController,
),
RaisedButton(
child: Text("Submit"),
onPressed:(){
insert(<String, dynamic>{
"Email": emailController.text,
"Name" : nameController.text,
// "Password" : passwordController.text,
});
}),
Text("Result : \n ${result!.data?.toString()}",),
],
);
},
),
],
),
),
);
}
}
这是我得到的错误:
`未找到材质小部件。
TextField 小部件需要一个 Material 小部件祖先。 在材料设计中,大多数小部件在概念上都“打印”在一张材料上。在 Flutter 的材质库中,该材质由 Material 小部件表示。例如,渲染墨水飞溅的是 Material 小部件。正因为如此,许多材质库小部件都要求它们上方的树中有一个 Material 小部件。
要引入 Material 小部件,您可以直接包含一个,也可以使用包含 Material 本身的小部件,例如 Card、Dialog、Drawer 或 Scaffold。
找不到 Material 祖先的特定小部件是:TextField
控制器:TextEditingController#c0f68(TextEditingValue(文本:┤├,选择:TextSelection(baseOffset:-1,extentOffset:-1,affinity:TextAffinity.downstream,isDirectional:false),撰写:TextRange(开始:-1,结束:- 1)))
装饰:InputDecoration(hintText:“名称”)
肮脏的
依赖项:[UnmanagedRestorationScope,MediaQuery]
状态:_TextFieldState#49d5d
这个小部件的祖先是:
: 柱子
方向:垂直
mainAxisAlignment:开始
crossAxisAlignment:中心
renderObject: RenderFlex#ce4db 需要-布局需要-油漆
: StreamBuilder
谁能帮帮我?
【问题讨论】:
-
将您的列包装在
Material小部件或Scaffold。
标签: flutter dart graphql widget graphql-mutation