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