2017-05-01 13 views
1

急いでAngular 2/Reduxプロジェクトを引き継ぎました。私は残念なことに、角度2をとてもよく知らない。私はnpm startでプロジェクトをブートストラップしようとしているが、このエラーを取得しています:Redux-Thunkでエラーが発生するTypescript

app/_dashboard.store.ts(54,37): error TS2345: Argument of type '(dispatch: any) => void' is not assignable to parameter of type 'Action'. 
    Property 'type' is missing in type '(dispatch: any) => void'. 

これは、エラーを引き起こしているコードです:

export const getNotificationAlerts: Function =() => { 

let url = '/myaccount/GetUserProfileAlertSettings'; 

post(url, {}, true) 
    .then(function (response) { 
     DashboardStore.dispatch((dispatch) => { 
      if (response.data) { 
       let notifications = response.data; 

       delete notifications.ResultCode; 

       dispatch({ 
        type: 'STORE_NOTIFICATIONS', 
        notifications: notifications 
       }); 
      } 
     }); 
    }) 
    .catch(function (error) { 
     DashboardStore.dispatch((dispatch) => { 
      dispatch({ 
       type: 'ERROR_STORE_NOTIFICATIONS', 
       error: error 
      }); 
     }); 
    }); 
} 

コンポーネント:

@Component({ 
moduleId: module.id, 
selector: 'dashboard-notifications', 
templateUrl: '../Templates/dashboard/notifications.html', 
animations: [ 
    trigger('notificationVisibility', [ 
     state('true', style({ opacity: 1, display: 'block' })), 
     state('false', style({ opacity: 0, display: 'none', height: '0px' })), 
     transition('*=>*', animate('0.15s')) 
    ]) 
] 
}) 
export class DashboardNotificationsComponent { 

// Initialize variables 
@Input() data: any; 
//showNotifications = 'true'; 
notificationActionSelected = false; 

constructor() { } 

processDetailsApproval: Function = (val, sender) => { 

    let thisComponet = this; 

    // Set disappear flag for class 
    this.notificationActionSelected = true; 

    if (typeof val !== 'undefined') { 
     processSenderApproval({ 
      'Status': val, 
      'RecipientId': sender.RecipientId, 
      'BusinessId': sender.BusinessId 
     }); 

    } 

    setTimeout(function() { 
     thisComponet.notificationActionSelected = false; 
    }, 500); 

} 
} 

ポスト機能

export const post = (url: string, data: Object, includeToken) => { 

    let params: Object = {}; 

    if (includeToken) { 
     params = addToken({}); 
    } 

    if (data) { 
     params = Object.assign({}, params, data); 
    } 

    params = qs.stringify(params); 

    return axios.post(url, params); 

} 

私は一日中解決策を見てきましたが、多くのトレーニングをしなくてもこのプロジェクトを引き継いで以来、私は検索する必要があるかどうかは確信していますし、回答もわかりません。どんなリードも感謝します。

+0

あなたはアクションとコンポーネントを付けましたか?完全なコンポーネントコードとその書き出し方法を投稿する –

+0

@PriyeshKumarはコンポーネントコードを追加しました。それが役に立てば幸い! –

答えて

0

getNotificationAlerts関数は、redux-thunkの別の関数を返す必要があります。私はng2-reduxでは動作しませんでしたが、angular1 reduxでのみ動作しました。マベ、これはうまくいく?

export const getNotificationAlerts: Function =() => { 

    let url = '/myaccount/GetUserProfileAlertSettings'; 

    return post(url, {}, true) 
    ... 
} 
関連する問題