reactjs - 尝试在 React 中迭代 URL 数组?
问题描述
我正在尝试使用 Heroku 的新 add:on 'simple-file-upload' 创建一个图片库。我已设法将所有内容保存到数据库中,并且一次可以显示 1 张图像,但现在无法创建图库。我已经按照我的想法设置了所有内容,但是当我console.log(files)
没有收到 URL 时,而只是收到1
计数中的数字。有什么想法我在这里做错了吗?下面是我的代码:
import React from "react";
import SimpleFileUpload, { SimpleFileUploadProvider } from "../components/SimpleFileUpload"
import { useState } from 'react'
import "./styles.css"
const API_KEY = ''
let count = 0;
export default function About() {
const [files, setFiles] = useState([]);
console.log(files)
//var Gallery = [];
//Gallery.push(files);
//console.log(files)
return (
<div className="App">
<h1>upload an image</h1>
<SimpleFileUpload apiKey={API_KEY} onSuccess={() => setFiles([...files, `${++count}`])} />
{!!files &&
files.map(a => {
return (
<div
key={a}
style={{
display: "flex",
justifyContent: "space-between",
marginTop: 5
}}
>
<div>{a}</div>
{/*
button to remove entries from the array, this should also make an API call to remove them from your server (unless the files are required for something like an audit).
*/}
<button onClick={() => setFiles(files.filter(f => f !== a))}>
Remove
</button>
</div>
);
})}
</div>
);
}
解决方案
看起来您的onSuccess
处理程序不接受文件。...files
${++count}中的() => setFiles([...files,
${++count}])
是files
from const [files, setFiles] = useState([]);
, ie, []
, 给你留下${++count}
, ie, 1
。
将其更改为files => setFiles([...files
${++count}])
应该可以解决它——尽管我不知道是什么onSuccess
,所以我不能肯定地说。
推荐阅读
- sql-server - 可以在多多边形中获得单个多边形吗?
- html - 博客菜单未显示在移动屏幕上
- vuejs2 - Vuetify 下拉列表无法正常工作
- ruby-on-rails - 在 Rails 上使用 ImageMagick 绘制不使用 PNG
- python - 从数组(频谱...)生成音频文件
- jquery - 使用 Apache 2.4.6 加载 magnific popup 时出现“无法加载内容” - 但不是 Apache 2.2.15
- c# - 在 lambda 表达式中使用局部属性的方法
- sql - 如何重命名系统生成的约束名称和主键索引
- c# - 为什么我从 Clipboard 类中得到 OutOfMemoryException?
- sql - 需要合并两个 SQL 查询