I am trying put multiline support in one of the comment 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: commentController,
),
),
),
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
}
}
"""
;
}
Advertisement
Answer
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, $comment:String) {
createComment(postId: $postId,
data:{
text: $comment,
}
){
_id
}
}
""";
dynamic _resp = await _graphClient
.mutate(MutationOptions(
document: gql(createCommentMutation),
variables: {
'postId': postId, //Add your variables here
'comment':text
},
));
}
The type of $postId & $comment 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
