Я попытался автозаполнить поля ввода значений. Итак, я отправил id
через параметры из компонента Cards
в компонент EditForm
, а в EditForm
, в его componentDidMount (), я использовал это id
и получил сообщение по id из базы данных. получил почту из магазина и вытащил title
и description
. Итак, я сделал свою форму предварительно заполненной значениями, которые я получил из магазина. Теперь я застрял здесь. Как мне отредактировать эту форму? С этими значениями, которые я установил в свойстве value
поля ввода, очевидно, что я ничего не могу напечатать, потому что я хотел сделать его предзаполнением. Теперь я думаю, что мой подход был неверным. Пожалуйста, помогите.
Cards
import React, { Component } from "react"
class Cards extends Component {
handleEdit = _id => {
this.props.history.push(`/post/edit/${_id}`)
}
render() {
const { _id, title, description } = this.props.post
return (
<div className="card">
<div className="card-content">
<div className="media">
<div className="media-left">
<figure className="image is-48x48">
<img
src="https://bulma.io/images/placeholders/96x96.png"
alt="Placeholder image"
/>
</figure>
</div>
<div className="media-content" style={{ border: "1px grey" }}>
<p className="title is-5">{title}</p>
<p className="content">{description}</p>
<button onClick={() => {this.handleEdit(_id)}} className="button is-success">
Edit
</button>
</div>
</div>
</div>
</div>
)
}
}
export default Cards
EditForm
import React, { Component } from "react";
import { connect } from "react-redux";
import { getPost } from "../actions/userActions"
class EditForm extends Component {
componentDidMount() {
const id = this.props.match.params.id
this.props.dispatch(getPost(id))
}
handleChange = event => {
const { name, value } = event.target;
this.setState({
[name]: value
})
};
render() {
return (
<div>
<input
onChange={this.handleChange}
name="title"
value={this.props.post.post.title}
className="input"
placeholder="Title"
/>
<textarea
onChange={this.handleChange}
name="desctiption"
value={this.props.post.post.description}
className="textarea"
></textarea>
<button>Submit</button>
</div>
);
}
}
const mapStateToProps = store => {
return store;
};
export default connect(mapStateToProps)(EditForm)