数据模型
class DataModel {
Book? book;
DataModel({
this.book,
});
}
class Book {
String author;
Book({
required this.author,
});
}
Getx Controller
class BookController extends GetxController{
var dataModel = DataModel().obs;
updateAuthor(){
dataModel.value.book!.author = "";
}
}
更新作者 Getx 时抛出“在 null 值上使用 null 检查”
将功能更改为此后
updateAuthor(){
dataModel.value.book?.author = "";
}
它没有更新值,使其为空。
还尝试使用更新方法无法更新这种类型的数据模型的值。类内部的类。
我只是想更新作者的信息,但无法做到。
最佳答案
在这里,我将解释你做错了什么,
首先,您创建了一个 DataModel
的对象.
var dataModel = DataModel().obs;
这个dataModel
有一个book
您用 ?
标记的属性所以你把它设置为空。
所以此时:
dataModel.value.book == null ; // true
您没有分配真正的Book
book 属性的实例,因此它是 null
,所以这一行:
dataModel.value.book!.author = ""; // will throw an error
因为dataModel.value.book
是 null
.
分配新的 Book()
需要什么?反对这样的 book 属性,指定 author
属性Book()
updateAuthor(){
dataModel.value.book = Book(author: "");
dataModel.refresh();
}
现在我们有了一个真正的Book
对象分配给 book
,这将修复您遇到的空错误。
关于flutter - Getx Flutter 在更新值时抛出 null 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74658967/