我正在尝试将 Thread 对象添加到我的变量 threads 。
这是我意识到的:
export class ThreadService {
newThreads: Thread[];
threads: Observable<{ [key: string]: Thread }>;
}
addThread(keyThread: string, newThread: Thread): void {
this.threadService.newThreads.push(newThread);
this.threadService.threads = Observable.of({[keyThread]: newThread});
}
你知道为什么它不起作用吗?
答案 0 :(得分:1)
这实际上与RxJS无关,你有混合类型。您在ThreadService
中将Observable<{ [key: string]: Thread }>
定义为:
{
a: thread1 as Thread,
b: thread2 as Thread,
}
这意味着您有一个Observable可以发出例如以下对象:
Observable.of(this.threadService.newThreads)
但是,您尝试使用newThreads
分配不同的内容。
Thread[]
属性属于{ [key: string]: Thread }
类型,无法分配给current = [
{'name' : 'food festival', 'category' : ['Miscellaneous', 'Undefined'], 'venue' : 'venue_1', 'price_1' : 100, 'price_2' : 120, 'start' : '2017-10-04T14:30:00Z'},
{'name' : 'food festival', 'category' : ['Miscellaneous', 'Undefined'], 'venue' : 'venue_2', 'price_1' : 150, 'price_2' : 200, 'start' : '2017-11-04T14:30:00Z'},
{'name' : 'music festival', 'category': ['music', 'pop'], 'venue' : 'venue_3', 'price_1' : 300, 'price_2' : 320, 'start' : '2017-12-04T14:30:00Z'}
]
。