无法将参数类型“editingtextcontroller”分配给参数类型“String”

时间:2021-07-23 07:23:36

标签: flutter

                    FirebaseFirestore.instance
                        .collection('books')
                        .doc(widget.book.id)
                        .update(Book(
                          userId: FirebaseAuth.instance.currentUser.uid,
                          title: _titleTextController,
                          author: _authorTextController,
                          photoUrl: _photoTextController,
                          startedReading: isReadingClick ? Timestamp.now():
                          widget.book.startedReading,
                          finishReading: Timestamp.now()
                          notes: _notesTextController,

这是代码的一部分,错误在哪里 [错误图像]:https://imgur.com/rL31Hhi [声明]:https://imgur.com/rUZaahp

2 个答案:

答案 0 :(得分:1)

要检索 TextEditingController 的文本,您需要调用 getter text

FirebaseFirestore.instance
                        .collection('books')
                        .doc(widget.book.id)
                        .update(Book(
                          userId: FirebaseAuth.instance.currentUser.uid,
                          title: _titleTextController.text,
                          author: _authorTextController.text,
                          photoUrl: _photoTextController.text,
                          startedReading: isReadingClick ? Timestamp.now():
                          widget.book.startedReading,
                          finishReading: Timestamp.now()
                          notes: _notesTextController.text,

答案 1 :(得分:0)

欢迎堆栈溢出。请务必准确描述您的错误。

解决方案,请使用控制器的 .text 属性。

 FirebaseFirestore.instance
                        .collection('books')
                        .doc(widget.book.id)
                        .update(Book(
                          userId: FirebaseAuth.instance.currentUser.uid,
                          title: _titleTextController.text,
                          author: _authorTextController.text,
                          photoUrl: _photoTextController.text,
                          startedReading: isReadingClick ? Timestamp.now():
                          widget.book.startedReading,
                          finishReading: Timestamp.now()
                          notes: _notesTextController.text,

您不能将 texteditingcontroller 分配给这些值,因为它用于控制您的文本。所以你需要点击它保存的文本。所以使用它的 .text 属性。因为我不知道您是否使用了空安全。我自己假设它为NO。如有错误,请随时询问。