javascript - 警告:道具类型失败:提供给“Dropzone”的“字符串”类型的无效道具“孩子”,应为“功能”
问题描述
我正在通过 Dropzone 使用简单的拖放功能,但不知何故出现了“警告:道具类型失败:提供给children
的类型无效道具,预期”的错误。我不知道它是什么 Na d 我已经检查过问题不存在于除此页面之外的任何其他地方string
Dropzone
function
import React, { Component } from "react";
import Dropzone from "react-dropzone";
const MaxSize = 1000000000; //
class DragAndDrop extends Component {
handleOnDrop = (files, rejectedFiles) => {
console.log(files);
console.log("rejected files are:", rejectedFiles);
if (rejectedFiles && rejectedFiles.length > 0) {
const currentRejectFile = rejectedFiles[0];
const currentRejectFileType = currentRejectFile.type;
const currentRejectFileSize = currentRejectFile.size;
if (currentRejectFileSize > MaxSize) {
alert(
"This file is not allowed. " +
currentRejectFileSize +
currentRejectFileType +
" too large"
);
}
}
if (files && files.length > 0) {
const currentFile = files[0];
const currentFileType = currentFile.type;
const currentFileSize = currentFile.size;
if (currentFileSize > MaxSize) {
alert(
"This file is not allowed. " +
currentFileSize +
currentFileType +
" too large"
);
}
}
};
render() {
return (
<div>
<h1>Drop </h1>
<Dropzone
onDrop={() => this.handleOnDrop()}
multiple={false}
maxSize={MaxSize}
>
Drop image here or click to upload
</Dropzone>
</div>
);
}
}
export default DragAndDrop;
我想要的是一个简单的拖放或选择并推送一些图像
解决方案
实际上它没有用,因为他们更改了DOCS或其他东西,但我不得不更改所有代码并用这个替换它
import React, { Component } from "react";
import Dropzone from "react-dropzone";
const maxSize = 1048576; //1mb
class DragAndDrop extends Component {
onDrop = acceptedFiles => {
console.log(acceptedFiles);
};
render() {
return (
<div>
<Dropzone
onDrop={this.onDrop}
accept="image/png, image/gif image/jpg"//whatever the file type needed
minSize={0}
maxSize={maxSize}
multiple
>
{({
getRootProps,
getInputProps,
isDragActive,
isDragReject,
rejectedFiles
}) => {
const isFileTooLarge =
rejectedFiles.length > 0 && rejectedFiles[0].size > maxSize;
return (
<div {...getRootProps()}>
<input {...getInputProps()} />
{isDragActive
? "Drop it when it's hot!"
: "Click me or drag a file to upload!"}
{isDragActive && !isDragReject && "Drop it like it's hot!"}
{isDragReject && "File type not accepted, sorry!"}
{isFileTooLarge && (
<div>File is too large.</div>
)}
</div>
);
}}
</Dropzone>
</div>
);
}
}
export default DragAndDrop;
推荐阅读
- cordova - Ionic 5 Stripe 如何使用success_url将用户重定向回应用程序?
- c++ - C++:这个浮点错误问题的解决方案?
- python-3.x - Python pyppeteer,如何使用 socks 代理
- database - 如何将金融交易映射到类别
- c - 随机正态分布发生器比较
- sql - 在 Django 中将 format() 函数与 pyodbc 一起使用时出现 SQL 错误
- javascript - google linechart 使用 c# 通过 asp.net 填充数据库
- javascript - 有人可以解释第 3 行发生了什么 // [a, b] = [b, a];
- python - 将python模块导入databricks中的python脚本
- linux - 将 debian 8 jessie 升级到 debian 9 strech 后 ssh 服务未启动