Я прокомментировал, что много читаю официальную документацию, и я полностью понимаю концепцию и функционирование этого.Проблема в том, что это стоит мне немного дороже, чтобы применить это в реальности.Итак, я начал практиковать и наткнулся на то, что меня озадачило, я хочу создать кнопку, которая загружает изображение и показывает его предварительный просмотр.Однако это состоит из нескольких шагов, таких как:
- проверка правильности загрузки изображения
- создание fileReader
- обновление статуса моего приложения (путьи имя изображения)
- показать изображение
Это будет выглядеть так:
onImageChange(event) {
if (event.target.files && event.target.files[0]) {
let reader = new FileReader();
let file = event.target.files[0];
reader.onloadend = () => {
this.setState({
imageFile: file,
imageName: file.name
});
}
reader.readAsDataURL(file)
}
}
Я попытался создать действие и что полезная нагрузкаэто имя изображения и файл изображения, но я не знаю, куда поместить читателя ...
это мой компонент в настоящее время:
import React, { Component } from "react";
import ImageModalForm from "../../../Commons/components/ImageModalForm";
import { connect } from "react-redux";
import { bindActionCreators } from "redux";
import { loadImage } from "../../actions";
const faceImage = require("../../../../img/face5.gif");
class ThumbnailComp extends Component {
onImageChange(event) {
if (event.target.files && event.target.files[0]) {
let reader = new FileReader();
let file = event.target.files[0];
reader.onloadend = () => {
this.setState({
imageFile: file,
imageName: reader.result
});
};
reader.readAsDataURL(file);
}
}
render() {
return (
<ImageModalForm
imageFile={this.props.imageFile}
imageName={this.props.imageName}
onImageChange={this.onImageChange}
/>
);
}
}
function mapStateToProps(state) {
return {
image: state.image
};
}
function mapDispatchToProps(dispatch) {
return bindActionCreators({ loadImage }, dispatch);
}
export default connect(mapStateToProps, mapDispatchToProps)(ThumbnailComp);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
Любые исправления приветствуются ... Спасибо!