我使用以下代码来从文件上传(XML)中获取值。但是控制台输出始终是不确定的。
有人会指出我的错误吗?
我的JS代码:
export default function XYZ() {
...
const [xmlUpload, setXmlUpload] = useState(null);
function uploadXMLHandler(e) {
setXmlUpload(e.target.files[0]);
}
useEffect(() => {
if (xmlUpload != null) {
var convert = require('xml-js');
var fileReader = new FileReader();
var result = fileReader.readAsText(xmlUpload);
console.log(result);
}
});
...
我的HTML代码是
<div className="uploadXML">
<input type="file" onChange={uploadXMLHandler} />
</div>
答案 0 :(得分:1)
您使用的FileReader错误。 FileReader#readAsText
不会立即返回结果,而是开始异步读取。完成后,它将触发load
事件。因此,您应该像这样监听事件:
var fileReader = new FileReader();
fileReader.onload = () => console.log(fileReader.result);
var result = fileReader.readAsText(xmlUpload);