使用 react-dropzone 创建列表
creating a list with react-dropzone
我正在尝试使用 react-dropzone 创建一个画廊。我成功地添加了图像,但没有像我想的那样创建一个数组,就像我按照他们的 github 所做的那样,它只是加载一个图像并在我拖动另一个图像时用新图像替换它。预期的结果是将图像添加到我已经拖入其中的图像旁边。
我正在指定一个名为 files: [],
的空数组,我想它会收集图像。
我的 class 中的 dropzone 元素如下所示:
let dropzoneRef;
<Dropzone
ref={
(node) => {
dropzoneRef = node;
}
}
onDrop={this.onDrop.bind(this)}>
<p>Drop files here.</p>
</Dropzone>
<RaisedButton
label="Upload File"
primary={false}
className="primary-button"
onClick={() => { dropzoneRef.open(); }}
/>
<ul>
{
this.state.files.map(f =>
<li key={f.preview}>
<img className="dropped-image" src={f.preview} alt=""/>
</li>,
)
}
</ul>
我将工作代码添加到 WebpackBin 供您检查
他们的 github 文档是 here
这是我的目标屏幕。我还没有弄清楚第二部分,即单击添加的任何单个缩略图并以全尺寸显示它。所以不用担心那部分。我只需要能够收集一个列表并添加任意数量的列表。这是预期结果的屏幕截图。 (幼稚园写的很抱歉)
提前致谢
您需要做的就是更新您的 onDrop
函数,如下所示
onDrop(uploadedFile) {
this.setState({
files: this.state.files.concat(uploadedFile),
});
}
这是因为您要将新文件添加到 this.state.files
数组。
查看此更新 WebpackBin。
我正在尝试使用 react-dropzone 创建一个画廊。我成功地添加了图像,但没有像我想的那样创建一个数组,就像我按照他们的 github 所做的那样,它只是加载一个图像并在我拖动另一个图像时用新图像替换它。预期的结果是将图像添加到我已经拖入其中的图像旁边。
我正在指定一个名为 files: [],
的空数组,我想它会收集图像。
我的 class 中的 dropzone 元素如下所示:
let dropzoneRef;
<Dropzone
ref={
(node) => {
dropzoneRef = node;
}
}
onDrop={this.onDrop.bind(this)}>
<p>Drop files here.</p>
</Dropzone>
<RaisedButton
label="Upload File"
primary={false}
className="primary-button"
onClick={() => { dropzoneRef.open(); }}
/>
<ul>
{
this.state.files.map(f =>
<li key={f.preview}>
<img className="dropped-image" src={f.preview} alt=""/>
</li>,
)
}
</ul>
我将工作代码添加到 WebpackBin 供您检查
他们的 github 文档是 here
这是我的目标屏幕。我还没有弄清楚第二部分,即单击添加的任何单个缩略图并以全尺寸显示它。所以不用担心那部分。我只需要能够收集一个列表并添加任意数量的列表。这是预期结果的屏幕截图。 (幼稚园写的很抱歉)
提前致谢
您需要做的就是更新您的 onDrop
函数,如下所示
onDrop(uploadedFile) {
this.setState({
files: this.state.files.concat(uploadedFile),
});
}
这是因为您要将新文件添加到 this.state.files
数组。
查看此更新 WebpackBin。