2016-04-13 11 views
2

CSVアップロードでアプリケーションを作成しようとしています。 CSVがアップロードされると、状態が変更され、CSVからJSONを解析して処理します。アイデアは、ファイルをアップロードし、状態を更新することです。その状態が更新されると、CSVをMeteor.methodに渡してJSONを解析します。 私はMeteor、React、Reduxを使用しています。私は、アップロード、アクション、レデューサーを扱うコンポーネントを持っています。すべてのファイルは以下の通りです.Meteor、React、Reduxの新機能ですが、なぜこれが動作しないのか私の人生を理解することはできません。私は達成しようとしていることを完全に理解しているとは思わない。どんな提案も大歓迎です。reducexアクションコンポーネントからディスパッチされたときには「関数ではありません」

ERROR - Uncaught TypeError: fileUpload is not a function UploadCSV.jsx

// ACTIONS - fileUpload.js 
export default function fileUpload(file) { 
    return { 
    type: 'FILE_UPLOAD', 
    file 
    }; 
} 



//REDUCERS - upLoad.js 
export default function upLoad(state = 'NO_FILE', action = {}) { 
    switch (action.type) { 
    case 'FILE_UPLOAD': 
     return action.file; 
    default: 
     return state; 
    } 
} 



//COMPONENTS - UploadCSV.jsx 
import React, { Component, PropTypes } from 'react'; 
import { connect } from 'react-redux'; 
import Dropzone from 'react-dropzone'; 
import { RaisedButton } from 'material-ui'; 
import { Colors } from 'material-ui'; 
import fileUpload from '../actions/fileUpload.js'; 
import { uploadCSV } from '../actions/uploadCSV.js'; 

class UploadCSV extends Component { 
    render(dispatch, file, fileUpload) { 
    const onDrop = (file) => { 
     console.log(file); 
    } 
    const upLoad =() => { 
     this.props.dispatch(fileUpload(file)); 
    }; 
    return (
     <div> 
     <Dropzone accept="csv" 
        onDrop={() => { 
         return upLoad(); 
        }}> 
      <div>Click or drop files here.</div> 
     </Dropzone> 
     </div> 
    ) 
    } 
} 

export default connect()(UploadCSV); 

ファイルアップロードが「機能ではない」である理由、それは行動であり、それは輸入されている場合、私は理解していませんか。?誰かが手を貸すことができるなら、私はそれを感謝します。

ありがとうございます!

答えて

2

あなたはrenderメソッドでfileUploadという引数を定義しているので、レンダリングメソッドで定義したすべての引数を削除します。クラスには、インポートされたすべてのモジュールのクロージャースコープがあり、クラス内のどこにでも参照できます。

+0

ありがとうございました。私は、レデューサー関数がコンポーネントに渡されていたが、現在の 'render()'構文の前にある、より古いreact/reduxの例を見ました。それが私が間違っていたところです。 –

0

インポートされた要素は、インポート時に大文字と小文字が区別されないようです。これは私にとっても同じ問題を引き起こしているので、頭を上げるだけです。

1

アプリケーション

を再起動し私は自分のアプリケーションを再起動するのを忘れたというだけの理由で同じ問題を抱えていました。すべてのReduxアクションは最初の状態で設定されているので、Redux Storeは新しい機能を実装したことを知らなかった。

これは誰かを助けることを望みます。

関連する問題