错误:TypeError:对象没有方法“设置”
Posted
技术标签:
【中文标题】错误:TypeError:对象没有方法“设置”【英文标题】:Error: TypeError: Object has no method 'set' 【发布时间】:2014-09-10 21:10:19 【问题描述】:我正在为我的 ios 应用程序使用云代码功能。我正在用这段代码调用云函数...
var moment = require("moment");
Parse.Cloud.define("registerActivity", function(request, response)
var user = request.user;
user.set("lastActive", new Date());
user.save().then(function (user)
response.success();
, function (error)
console.log(error);
response.error(error);
);
);
从 iOS 我这样称呼它......
[PFCloud callFunction:@"registerActivity" withParameters:@];
为什么会出现这个错误?
Error: TypeError: Object has no method 'set'
【问题讨论】:
你的request.user
对象有set
方法吗?还是您只是想这样做user.lastActive = new Date()
我不知道。如果我不必将它用于云代码,我根本不会使用它。我对我用 JS 所做的一切只有一半的把握。那么它有一个设置方法吗?它应该。在 iOS 中,您只需执行 [[PFUser currentUser]setObject:[NSDate date] forKey:@"lastActive"];
。我如何用 JS 做同样的事情并且没有错误?
【参考方案1】:
您不一定通过云函数传递解析对象并期望它们保持解析对象。更好的解决方案是传递对象 id,然后创建指向用户对象的指针,并将该 id 设置为它。然后更新保存:
var moment = require("moment");
Parse.Cloud.define("registerActivity", function(request, response)
var user = new Parse.User()
user.id = request.userId;
user.set("lastActive", new Date());
user.save().then(function (user)
response.success();
, function (error)
console.log(error);
response.error(error);
);
);
【讨论】:
哈哈你是对的。这就是我一周前使用的方法,它就像一种魅力。所以你是对的,只是有点晚了哈哈。但是你会因为尝试而得到一张笑脸! 谢谢!毕竟在这里最好有答案,它可以帮助其他有同样问题的人。 您能否详细说明为什么我们不能“期望它们保持解析对象”?我现在已经遇到过几次这个问题,但我找不到任何原因,所以我不确定我需要注意什么。 @gyratorycircus:有几个原因。一是在 iOS 端你有一个 Objective-C 类型的 PFObject。如果您只是将该对象作为参数传递,您将不得不依赖某种序列化到 JSON 中。现在可能一切都很好,但是在接收端,JSON 必须反序列化为 Parse 对象。这也可能没问题,但默认情况下不会发生这样的序列化/反序列化。请注意,解析对象不仅仅是您在数据浏览器中看到的属性,它还具有原型方法等,因此包含函数指针。以上是关于错误:TypeError:对象没有方法“设置”的主要内容,如果未能解决你的问题,请参考以下文章
TypeError:错误 #1009:无法访问空对象的属性或方法
Uncaught TypeError: Illegal invocation问题解决方法
如何修复 React 中的“TypeError:categories.map 不是函数”错误
TypeError:错误 #1009:无法访问空对象引用的属性或方法。尝试创建按钮时。