我用的是React和Redux。我有一个名为UploadFileAction.js的操作文件,下面是代码:
export const selectFile = (file) => {
return {
type: 'FILE_SELECTED',
payload: file
}
};file参数包含上传的文件。
我想做什么
我想将文件内容发送给我的还原器,而不是整个文件作为有效负载。
我试过的
let fileReader = new FileReader();
fileReader.readAsText(file, "UTF-8");
fileReader.onload = function(fileLoadedEvent){
let textFromFileLoaded = fileLoadedEvent.target.result;
}现在,textFromFileLoaded变量包含我的文件文本,但我无法在payload中传递它。
发布于 2017-12-17 00:51:59
也许我误解了,但是你必须把包含文件文本的动作的结果传递给还原器。所以它应该看起来像:
let fileReader = new FileReader();
fileReader.onload = function(fileLoadedEvent){
dispatch(selectFile(fileLoadedEvent.target.result));
}
fileReader.readAsText(file, "UTF-8");关于这个主题的进一步阅读:https://redux.js.org/docs/basics/Actions.html
https://stackoverflow.com/questions/47851112
复制相似问题