2016-11-22 113 views
2

我是新來的Typescript和使用VSCode。類型'void'的參數不能分配給'Action'類型的參數

獲得以下錯誤:

* [TS]類型「無效」的參數是不能分配給類型「操作」的參數。 (參數)動作:無效

代碼:

loadItems() { 
    return this.Apiname.find() 
     .map(
     (data) => console.log("data:", data) 
     ) 
     .map(
     payload => ({ 
      type: 'LOAD_ITEMS', 
      payload: payload 
     }, 
     ) 
     ) 
     .subscribe(
     action => this._store.dispatch(action)//Error 
     ); 
}; 

任何幫助將是非常有益的。

+0

的首先'.map'回調不會返回任何東西,請嘗試將其改爲'.map((data)=> {console.log(「data:」,data); return data;})' – artem

回答

2

您的map聲明包含尾隨,,這可能是問題所在。我會調整這樣的代碼:

return this.Apiname.find() 
    .do((data) => console.log("data:", data)) 
    .map(
     payload => ({ 
      type: 'LOAD_ITEMS', 
      payload: payload 
     //},) 
     }) 
    ) 
    .subscribe(
     action => this._store.dispatch(action) // no error 
    ); 

現在action的類型是{ type: string, payload: ... }

注:副作用,像console.log打印,ReactiveX提供.do運營商 - 見http://reactivex.io/documentation/operators/do.html

+0

感謝它的作品。 – Khushi

+0

很高興看到;) –

相關問題