我一起使用React和Redux。 我有一个名为 UploadFileAction.js 的操作文件,下面是代码:
export const selectFile = (file) => {
return {
type: 'FILE_SELECTED',
payload: file
}
};
file
参数包含上传的文件。
我想做什么
我想将文件内容发送到我的 reducer 而不是整个文件作为有效负载..
我尝试了什么
let fileReader = new FileReader();
fileReader.readAsText(file, "UTF-8");
fileReader.onload = function(fileLoadedEvent){
let textFromFileLoaded = fileLoadedEvent.target.result;
}
现在textFromFileLoaded
变量包含我的文件文本,但我无法在payload
中传递它。
答案 0 :(得分:0)
也许我误解了,但您必须发送包含文件文本的操作的结果,以将其传递给reducer。所以看起来应该是这样的:
let fileReader = new FileReader();
fileReader.onload = function(fileLoadedEvent){
dispatch(selectFile(fileLoadedEvent.target.result));
}
fileReader.readAsText(file, "UTF-8");