редактировать изображение в форме React - PullRequest
0 голосов
/ 31 января 2019

У меня есть форма в приложении React, и я хочу редактировать значения, все работает нормально, но я не могу понять, как поступить с изображением.это форма для создания профиля

onSubmit = e => {
e.preventDefault();

const {
  handle,
  status,
  bio,
  facebook,
  twitter,
  youtube,
  instagram,
  profileImage
} = this.state;

let formData = new FormData();

formData.append("handle", handle);
formData.append("status", status);
formData.append("bio", bio);
formData.append("facebook", facebook);
formData.append("twitter", twitter);
formData.append("youtube", youtube);
formData.append("instagram", instagram);
formData.append("profileImage", profileImage);

this.props.createProfile(formData, this.props.history); };

 onChange = e => {
switch (e.target.name) {
  case "profileImage":
    this.setState({ profileImage: e.target.files[0] });
    break;
  default:
    this.setState({ [e.target.name]: e.target.value });
}

};

и это форма для редактирования

componentDidMount() {
this.props.getCurrentProfile();
}

componentWillReceiveProps(nextProps) {
if (nextProps.errors) {
  this.setState({ errors: nextProps.errors });
}

if (nextProps.profile.profile) {
  const { profile } = nextProps.profile;
  // if empty make empty string
  profile.bio = isEmpty(profile.bio) ? "" : profile.bio;
  profile.social = isEmpty(profile.social) ? {} : profile.social;
  profile.facebook = isEmpty(profile.social.facebook)
    ? ""
    : profile.social.facebook;
  profile.twitter = isEmpty(profile.social.twitter)
    ? ""
    : profile.social.twitter;
  profile.instagram = isEmpty(profile.social.instagram)
    ? ""
    : profile.social.instagram;
  profile.youtube = isEmpty(profile.social.youtube)
    ? ""
    : profile.social.youtube;
  profile.profileImage = isEmpty(profile.profileImage)
    ? ""
    : profile.profileImage;
  // set to state
  this.setState({
    handle: profile.handle,
    status: profile.status,
    bio: profile.bio,
    facebook: profile.facebook,
    twitter: profile.twitter,
    instagram: profile.instagram,
    youtube: profile.youtube,
    profileImage: profile.profileImage
  });
  }
 }

 onSubmit = e => {
 e.preventDefault();

 const {
  handle,
  status,
  bio,
  facebook,
  twitter,
  youtube,
  instagram,
  profileImage
} = this.state;

let formData = new FormData();

formData.append("handle", handle);
formData.append("status", status);
formData.append("bio", bio);
formData.append("facebook", facebook);
formData.append("twitter", twitter);
formData.append("youtube", youtube);
formData.append("instagram", instagram);
formData.append("profileImage", profileImage);

this.props.createProfile(formData, this.props.history);
};

onChange = e => {
 switch (e.target.name) {
   case "profileImage":
     this.setState({ profileImage: e.target.files[0] });
     break;
   default:
      this.setState({ [e.target.name]: e.target.value });
  }
 };

Итак, я могу получить формуполя из состояния и заполните форму редактирования, и я могу отобразить изображение, если я хочу, но я хочу, чтобы изображение оставалось прежним, если пользователь не выбирает новое, текущий код делает изображение пустым, если вы неничего не выбирай.Я надеюсь, что я был ясен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...