Javascript Can';t整理一批发送到s3的所有文件
我有一个React+Rails聊天应用程序,我想向它添加附件 我用做附加图像。每次图像成功添加到dropzone时,它都会调用Javascript Can';t整理一批发送到s3的所有文件,javascript,ruby-on-rails,reactjs,file-upload,amazon-s3,Javascript,Ruby On Rails,Reactjs,File Upload,Amazon S3,我有一个React+Rails聊天应用程序,我想向它添加附件 我用做附加图像。每次图像成功添加到dropzone时,它都会调用attachToS3函数并将该图像发布到S3。成功发布后,它将新消息内容的状态设置为文件的url。 一旦用户上传了所有文件,他们可以单击send,将new\u message\u内容作为新消息插入对话中 由于,我允许用户同时添加多个文件,因此我的状态仅包含上次上载文件的url,而不是所有url的数组 我的dropzone呈现如下: renderFileDropzone()
attachToS3
函数并将该图像发布到S3。成功发布后,它将新消息内容的状态设置为文件的url。
一旦用户上传了所有文件,他们可以单击send
,将new\u message\u内容作为新消息插入对话中
由于,我允许用户同时添加多个文件,因此我的状态仅包含上次上载文件的url,而不是所有url的数组
我的dropzone
呈现如下:
renderFileDropzone() {
let componentConfig = { postUrl: 'random_url'},
djsConfig = { autoProcessQueue: true, addRemoveLinks: true },
eventHandlers = { addedfile: this.attachToS3.bind(this) };
return(
<div>
<div className="dashboard-modal">
<div className="dashboard-modal-content">
<div className="dashboard-modal-header">
<h5>Send files to {this.state.counterparty.name}</h5>
<span onClick={this.closeDropzone.bind(this)} className="icon-cancel modal-close"></span>
</div>
<form>
<div className="dashboard-modal-body">
<DropzoneComponent config={componentConfig} eventHandlers = {eventHandlers} djsConfig = {djsConfig} />
<button onClick={this.sendMessage.bind(this)} type="submit" className="btn btn-secondary">Send Files</button>
</div>
</form>
</div>
</div>
<div className="modal-bg bg-transparent-black"></div>
</div>
)
}
我尝试将localStorage
添加到我的attachToS3
函数中,如下所示:
var url_array = JSON.parse(localStorage.getItem('allFiles'));
if (url_array == null) url_array = [];
var url = {
'url' : file_url
};
localStorage.setItem('url', JSON.stringify(url));
url_array.push(url);
localStorage.setItem('allURL', JSON.stringify(url_array));
但它不工作,我得到一个错误url\u数组。push
不是一个函数
有没有办法获取数组中的所有文件url
var url_array = JSON.parse(localStorage.getItem('allFiles'));
if (url_array == null) url_array = [];
var url = {
'url' : file_url
};
localStorage.setItem('url', JSON.stringify(url));
url_array.push(url);
localStorage.setItem('allURL', JSON.stringify(url_array));