I am trying put multiline support in one of the ment section of app and it is not accepting it.
the input which i put is
Hi
Hello
Hello
and it is showing this error
And this is the code i am writing for the inputfield
ListTile(
leading: CircleAvatar(
backgroundImage: AssetImage(UIData.pkImage),
),
title: Container(
constraints: BoxConstraints(
maxHeight: double.infinity,
minHeight: 20,
),
child: TextField(
keyboardType: TextInputType.multiline,
minLines: 1,//Normal textInputField will be displayed
maxLines: 10,// when user presses enter it will adapt to it
decoration: InputDecoration(
suffix: IconButton(
color: Colors.grey,
icon: Icon(Icons.send),
onPressed: () {
createComment();
},
),
hintText: 'Leave a Comment....',
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(20.0),
borderSide: BorderSide(color: Colors.teal))),
controller: mentController,
),
),
),
The problem is with updating the graphQL query and initializing it with String block
String createComments(String postId, var text) {
return """
mutation{
createComment(postId: "$postId",
data:{
text: ""$text"",
}
){
_id
}
}
"""
;
}
I am trying put multiline support in one of the ment section of app and it is not accepting it.
the input which i put is
Hi
Hello
Hello
and it is showing this error
And this is the code i am writing for the inputfield
ListTile(
leading: CircleAvatar(
backgroundImage: AssetImage(UIData.pkImage),
),
title: Container(
constraints: BoxConstraints(
maxHeight: double.infinity,
minHeight: 20,
),
child: TextField(
keyboardType: TextInputType.multiline,
minLines: 1,//Normal textInputField will be displayed
maxLines: 10,// when user presses enter it will adapt to it
decoration: InputDecoration(
suffix: IconButton(
color: Colors.grey,
icon: Icon(Icons.send),
onPressed: () {
createComment();
},
),
hintText: 'Leave a Comment....',
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(20.0),
borderSide: BorderSide(color: Colors.teal))),
controller: mentController,
),
),
),
The problem is with updating the graphQL query and initializing it with String block
String createComments(String postId, var text) {
return """
mutation{
createComment(postId: "$postId",
data:{
text: ""$text"",
}
){
_id
}
}
"""
;
}
ments
object?
– MrMikimn
Commented
Mar 17, 2021 at 21:17
I presume you are using flutter_graphql.
It is bad practice to generate mutation strings using interpolation. You should use graphql
variables for sending data with mutations (And, there is no problem in sending a multi-line string).
Sample:
String createComments(String postId, var text) {
const createCommentMutation = """
mutation createComment(\$postId: String, \$ment:String) {
createComment(postId: \$postId,
data:{
text: \$ment,
}
){
_id
}
}
""";
dynamic _resp = await _graphClient
.mutate(MutationOptions(
document: gql(createCommentMutation),
variables: {
'postId': postId, //Add your variables here
'ment':text
},
));
}
The type of \$postId
& \$ment
should be same as that of in your graphql schema. I have declared them as String
on the very first line.
You can find the documentation of the same here
We can use the additional putting of the spaces also