我在sendMessage函数的chat.services.ts中收到错误。 我试图做一个异步管道,但它不是从我的chat-message.model.ts读取对象
这是我在 chat-message.model.ts :
中的代码export class ChatMessage {
$key?: string;
email?: string;
userName?: string;
message?: string;
timeSent?: Date = new Date();
}
这也是我的 chat.services.ts :
中的代码sendMessage(msg: string){
const timestamp = this.getTimeStamp();
const email = 'test@example.com';
this.chatMessages = this.getMessage();
this.chatMessages.push({
message: msg,
timeSent: timestamp,
userName: 'test-user',
email: email });
getMessage(): AngularFireList<ChatMessage[]> {
// Query to create Message Feed Binding
console.log('Calling getMessages()!')
return this.db.list('messages')
}
我觉得这很明显,但代码对我来说确实很好。
我觉得它可能与$ key有关?
答案 0 :(得分:0)
这是我的代码的简短版本,它解释了我希望看到错误的位置。首先,这是一个演示代码的工作位:
export class ChatMessage {
$key?: string;
email?: string;
userName?: string;
message?: string;
timeSent?: Date = new Date();
}
const chatMessages: ChatMessage[] = [];
chatMessages.push({
message: 'Message',
timeSent: new Date(),
userName: 'test-user',
email: 'fenton@example.com'
});
你得到的错误说:
'ChatMessage []'类型中不存在'message'
这很有趣......这意味着它认为chatMessages: ChatMessage[]
看起来更像ChatMessage[][]
(即包含聊天消息数组的数组)。
因此,通过使用注释将错误移动到有趣的行来测试理论:
this.chatMessages: ChatMessage[] = this.getMessage();
我预计此行会出错,因为this.getMessage();
返回的类型不是ChatMessage[]
。
如果您仍然卡住,请向我们提供getMessage()
方法。