Flutter GetX开发报错:类型'Rx'中未定义方法'fromSnapshot'求助
问题根因
报错本质是调用对象不匹配:
fromSnapshot是AgentsModel类的命名构造函数,需要通过类本身调用,不能在类的实例或者Rx包装对象上调用- 你声明的
agentsModel是通过.obs生成的Rx<AgentsModel>类型可观察对象,不属于AgentsModel类本身,自然没有对应的构造方法
修复方案
把.then回调里的调用主体从agentsModel换成AgentsModel类即可,修正后的代码如下:
var agentsModel = AgentsModel().obs; _initializeAgentsModel(String userId) async { agentsModel.value = await _db.collection(agentsCollection) .doc(userId) .get() .then((doc) => AgentsModel.fromSnapshot(doc)); }
额外优化建议
- 可以给可观察变量添加明确类型声明,避免后续类似类型混淆问题:
final Rx<AgentsModel> agentsModel = AgentsModel().obs; - 既然已经用了async/await语法,建议去掉嵌套的
.then写法,逻辑更清晰:_initializeAgentsModel(String userId) async { final doc = await _db.collection(agentsCollection).doc(userId).get(); agentsModel.value = AgentsModel.fromSnapshot(doc); }
内容的提问来源于stack exchange,提问作者LostTexan
相关产品推荐
相关产品推荐

