Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将文件对象保存到React中的状态?_Javascript_Reactjs - Fatal编程技术网

Javascript 如何将文件对象保存到React中的状态?

Javascript 如何将文件对象保存到React中的状态?,javascript,reactjs,Javascript,Reactjs,我正在尝试设置一个文件对象的状态,在我上传到服务器之前,我正在模态之间传递该文件对象。 下面是我试图实现的代码 const state = { selectedDocument: { file: {}, }, selectedFile: new File([''],''), }; //state init in constructor //method being called upon modal cl

我正在尝试设置一个文件对象的状态,在我上传到服务器之前,我正在模态之间传递该文件对象。 下面是我试图实现的代码

 const state = {
        selectedDocument: {
            file: {},
        },
        selectedFile: new File([''],''),
    };  //state init in constructor 

  //method being called upon modal close and passes the selected file object.

 openUploadDocumentModal(files) {
    console.log('files', files); //getting the file object here.

    const ds = new File([files[0]], files[0].name);
    //tried setting directly doest work.
    this
    .setState({
        selectedDocument: {
            file: new File([files[0]], files[0].name),
        },
        selectedFile: new File([files[0]], files[0].name),
    });

    //tried setting using the react update addon, doesnt work
    this
    .setState(prevState => update(prevState,
        {
            selectedFile: { $set: new File([files[0]], files[0].name)}, // trying to set the file file here, get {} on output
            showAddDocumentModal: { $set: false },
            showUploadDocumentModal: { $set: true },
        }
    ));
}
将状态设置为:

const state = {
        selectedDocument: {
            file: null,
        },
        selectedFile: null,
    };
this
    .setState({
        selectedDocument: {
            file: files[0],
            //files is a FileList variable, either obtained from event.target.files if obtained from input 
            //or event.dataTransfer.files if obtained from drag and drop 
            //or any other method
        },
        selectedFile: files[0],
    });
然后,将状态设置为:

const state = {
        selectedDocument: {
            file: null,
        },
        selectedFile: null,
    };
this
    .setState({
        selectedDocument: {
            file: files[0],
            //files is a FileList variable, either obtained from event.target.files if obtained from input 
            //or event.dataTransfer.files if obtained from drag and drop 
            //or any other method
        },
        selectedFile: files[0],
    });
就这么简单