2016-09-27 1 views
0

私はreactxとreduxとES6で作業しています。私はアクションはそうのような機能をエクスポートするファイルをしている:ES6で関数が値 '0'としてインポートされるのはなぜですか?

MonthlyRevenueActions.js 

export function fetchMonthlyRevenue(name, startDate, endDate) { 
    return function(dispatch) { 
     dispatch(console.log("name": " + name + ", start: " + startDate + ", end: " + endDate)); 
    } 
} 

はその後、私のコンテナコードで、私は、import文を持っている機能を使用しようが、私は、変数の値が0であることをクロームデベロッパーツールで見ることができます:

MonthlyDisplayContainer.js: 
import {otherFunc, fetchMonthlyRevenue, otherFunctionTwo} from 'actions/monthly/MonthlyRevenueActions' 

const mapStateToProps = (state, ownProps) => { 

    //... other code that's being executed 

    fetchMonthlyRevenue(name, startDate, endDate); 
} 

Chrome DevTools snapshot

私はnamestartDate、およびendDateの値を見ることができますが、fetchMonthlyRevenue()機能は、ちょうど0

です

(私はES6の初心者ですが)スコープに関しては何かが欠けていると思いますが、私の人生はこの機能を実行する方法を理解できません。

ご協力いただきありがとうございます。

+2

私はしないでくださいそのコード行を理解する。あなたは関数を実行していて、関数を返していますし、戻り値で何もしていませんか?ええ0は奇妙ですが...コードもそうです –

+0

あなたは何を得ていますか? – searsaw

+0

エラーが発生していません...コードが実行されているため、エラーは一切発生しません。 'console.log()'を 'fetchMonthlyRevenue()'行と一緒に出力します。 – Cuga

答えて

0

クロムは、おそらくインポートのソースをピックアップしています。ソースマップを使用していますか?おそらく彼らは作成されていないか、適切にロードされていません。

バベルは

'use strict'; 

var _a = require('a'); 

(0, _a.a)(); 

Check it out on the Babel REPL ...

では...アウト

import { a } from 'a' 
a() 

...輸入に次のことを行います。

インポートした値の関数呼び出しが最後の行にどのように変化するか(これは名前のインポート、例えば、デフォルトのタイプに応じて変化します。)

お知らせ:

(0, _a.a)(); 
+0

はい、ソースマップを使用しています。私は、ソースが正しくクロムに読み込まれていると思う...私は同じコードブロック内の他の変数の値を見ることができます...そして、この同じファイル内で、ちょうど別の関数で...私は関数を実行することができますmをインポートします。私の疑念は、メソッドが実行されているときにスコープと関係するものです...しかし、なぜわかりません – Cuga

+0

@Cuga他の変数は、おそらく他のモジュールからのインポートではありませんか?これは、あなたがインポートされた関数の場合と同じ動作をしていない理由です。 – sdgluck

+0

私は助けに感謝します。私が知る限り、他のすべてのインポートはファイル内で働いています...同じファイル内の別のメソッドでこの正確なインポートが使用されています。私は、それが何らかの意味をなさないならば、それがreduxの 'mapStateToProps'を実行しているときにこのインポートが存在するかどうかと関係しなければならないと半分好奇心です。 – Cuga

関連する問題