我正在一成不变地改变状态,但这不起作用。基本上,我创建了一个函数来获取 excel 文件数据。此功能完美运行,但当我更新状态时,状态未更新。
任何想法或任何建议与我分享
这是我的状态:
tableData: [], productsData: []
这是状态更新的减速器:
case actionTypes.READ_EXCEL:
var excel1 = [];
var excel2 = [];
const promise = new Promise((resolve, reject) => {
const fileReader = new FileReader();
fileReader.readAsArrayBuffer(action.payload);
fileReader.onload = (e) => {
const bufferArray = e.target.result;
const wb = { SheetNames:[], Sheets:{} };
const ws1 = XLSX.read(bufferArray, {type: "buffer"}).Sheets.Sheet1;
const ws2 = XLSX.read(bufferArray, {type: "buffer"}).Sheets.Sheet2;
wb.SheetNames.push("Sheet1");
wb.Sheets["Sheet1"] = ws1;
wb.SheetNames.push("Sheet2");
wb.Sheets["Sheet2"] = ws2;
const data1 = XLSX.utils.sheet_to_json(ws1);
const data2 = XLSX.utils.sheet_to_json(ws2);
resolve([ data1, data2 ]);
}
fileReader.onerror = (error) => {
reject(error);
};
})
promise.then((excelData) => {
excel1 = excelData[0];
excel2 = excelData[1];
});
return {
...state,
tableData: excel1,
productsData: excel2
}
default:
}
return state;
}
在获取状态值和状态值未更新的 UI 中:
const mapStateToProps = (state) => {
return {
items: state.tableData, <---
products: state.productsData <---
};
}
湖上湖
慕田峪4524236
相关分类