pre*_*ast 4 javascript foreach rxjs reactjs react-native
我有这个功能可以上传多张图片并且它可以工作,现在我需要显示用户选择的所有图片的预览。我尝试使用map和forEach尝试循环并显示图像,但它不起作用。console.log(images)正在显示上传图片的 url,但images.map()或images.ForEach正在抛出空错误。谁能告诉我这有什么问题?我是新手,所以需要一些帮助。
这是代码:
const fileObj = [];
const imageArray = [];
const [images, setImages] = useState(null);
const uploadMultipleFiles = (e) => {
if (e.target.name === 'images') {
fileObj.push(e.target.files)
for (let i = 0; i < fileObj[0].length; i++) {
imageArray.push(URL.createObjectURL(fileObj[0][i]))
// console.log(imageArray)
}
setImages({ images: imageArray })
}
}
{console.log(images)}
<div className="form-group multi-preview">
{ {(imageArray || []).map(url => (
<img src={url} alt="" />
))}
}
</div>
<label htmlFor="images">
<input
accept="image/*"
className={classes.input}
id="images"
onChange={uploadMultipleFiles}
name="images"
type="file"
multiple
ref={register({required:true})}
/>
Images
<IconButton color="primary" component="span">
<PhotoCamera style={{fontSize:"xx-large"}} />
</IconButton>
</label>
Run Code Online (Sandbox Code Playgroud)
通过您的setImages({ images: imageArray })调用,您将获得imagesconst 的值:
images = {images: [...]} // [...] is the imageArray
Run Code Online (Sandbox Code Playgroud)
因此,您必须将其访问为images.images,或者将其设置为setImages(imageArray)可以按您期望的方式访问。
此外,访问状态变量并使用map而不是forEach,而不是imageArray。所以,而不是imageArray.forEach(...)使用images.map(...). Map 返回一个数组,其中包含从函数调用返回的值。而forEach返回未定义。
| 归档时间: |
|
| 查看次数: |
279 次 |
| 最近记录: |