ここでは、私は私の変数のスレッドで起動する方法です:観察可能な型の変数にThread型の変数を追加します。<{[キー:文字列]:スレッド}>
threads: Observable<{ [key: string]: Thread }>;
をそして、これは私が私の変数を初期化する方法でありますスレッドは:
this.threads = messageService.messages
.map((messages: Message[]) => {
const threads: { [key: string]: Thread } = {};
messages.map((message: Message) => {
threads[message.thread.id] = threads[message.thread.id] ||
message.thread;
const messagesThread: Thread = threads[message.thread.id];
if (!messagesThread.lastMessage ||
messagesThread.lastMessage.date < message.date) {
messagesThread.lastMessage = message;
}
});
return threads;
});
私は、変数スレッドに変数newThreadを追加したい:
const newThread: Thread = new Thread(objMessage.id, objmessage.participants);
私はこれを試してみました:
threads = Observable.of([newThread]);
またはこの:
this.threads.subscribe((thread: Thread) => {
threads.next(newThread);
});
しかし、それはうまくいきません。しかし、タイプは正しいものではありません。
///////////////////////////////////////////////////////////////////////////// //////////////////////////////
EDIT:
////////// /////////////////////////////////////////////////////////////////私は、この初期設定を変更
threads: BehaviorSubject<{[key: string]: Thread }> = BehaviorSubject.create();
:
私はBehaviorSubjectであることを私のスレッド変数を変更////////////////
this.messageService.messages.map((messages: Message[]) => {
const threads: { [key: string]: Thread } = {};
messages.map((message: Message) => {
threads[message.thread.id] = threads[message.thread.id] ||
message.thread;
const messagesThread: Thread = threads[message.thread.id];
if (!messagesThread.lastMessage ||
messagesThread.lastMessage.date < message.date) {
messagesThread.lastMessage = message;
}
});
return threads;
}).subscribe(threads => {
this.threads.next(threads);
});
そして私は、この置く:
addThread(newThread: Thread): void {
this.threadService.newThreads.push(newThread);
this.threadService.newThreadsId.push(newThread.id);
this.threadService.orderedThreads.next(this.threadService.newThreads);
let threads = this.threadService.threads.value;
this.threadService.threads.next(threads);
}
をそして、私はこのエラーがあります:
Cannot set property 'flo' of undefined ; Zone: <root> ; Task: Promise.then ; Value: TypeError: Cannot set property 'tRev' of undefined
'FLO' それは私のスレッドのL'IDですが:
this.addNewMessageNewThread({
"id": "flo",
"author": "Flo Peron",
"body": "COUUUUCOU",
"title": "Groupe 158"
});
[スレッド]タイプです。 Observable.of()は、観測可能にすることができるシーケンスを期待しています – Mitta
@Mitta 私はそれを変更しました:threads = Observable.of([newThread]); しかし、どちらも動作しません。 'スレッド'に 'newThread'を追加することは可能ですか? – Floriane