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);
ファイルアップロードが「機能ではない」である理由、それは行動であり、それは輸入されている場合、私は理解していませんか。?誰かが手を貸すことができるなら、私はそれを感謝します。
ありがとうございます!
ありがとうございました。私は、レデューサー関数がコンポーネントに渡されていたが、現在の 'render()'構文の前にある、より古いreact/reduxの例を見ました。それが私が間違っていたところです。 –