Я пытаюсь отредактировать сообщение в моем проекте Reaction-Redux, где я делаю это так:
Мой пост. js
<div className="Heading_with_icon_story">
<span className="post_heading">{item.storyTitle}</span>
<p className="both_icons">
<img src={edit} alt="miss-mistake" className="edit-icon" onClick={()=>this.editStory(item)} />
<img
src={trash}
alt="miss-mistake"
className="edit-icon"
onClick={() => this.deleteStory(item._id,item.userID)}
/>
</p>
</div>
, тогда действие вызывается действием. js
export const editStoryAction = (itemId) => {
return (dispatch) => {
fetch("http://localhost:3000/api/edit-story", {
method: "POST",
body: itemId,
})
.then((res) => res.json())
.then((response) => {
console.log(response.data);
dispatch({ type: EDIT_STORY, payload: response.data });
Router.push("/edit-story");
})
.catch((err) => {
console.log("Eror in adding");
dispatch({ type: EDIT_STORY_FAIL, payload: err });
});
};
};
затем в редуктор воспроизведения включается редуктор. js
const getEditStoryReducer = (state = {}, action) => {
switch (action.type) {
case EDIT_STORY:
return action.payload
default:
return state;
}
};
export default getEditStoryReducer;
и, наконец, появляется страница редактирования, где я сталкиваюсь с проблемой
class editStory extends Component {
constructor(props) {
super(props);
this.state = {
storyTitle: "",
storyDescription: "",
};
}
render() {
return (
<React.Fragment>
<Header />
<main className="share_content">
<p className="Share_heading">What's your story ?</p>
<input
type="text"
value={this.props.storyDetails.storyTitle}
placeholder="what is your story called ?"
className="share_input_title"
onChange={(e)=>this.setState({storyTitle:e.target.value})}
/>
<textarea
type="text"
value={this.props.storyDetails.storyDescription}
placeholder="your experience and what did you learn from it.."
className="share_input_description"
onChange={(e)=>this.setState({storyDescription:e.target.value})}
/>
<button className="Share_button" onClick={()=>this.handleSubmit()}>Post !</button>
</main>
</React.Fragment>
);
}
}
const mapStateToProps = (state) => {
console.log(state)
return {storyDetails:state.getEditStoryReducer};
};
export default connect(mapStateToProps, { verifyToken,editStoryAction })(editStory);
поэтому я правильно заполняю свои поля ввода данными, но я не могу изменить их, используя метод onChange, что означает, что я nbale, чтобы написать их ... это так, потому что при onChange мой компонент перерисовывается, а затем снова извлекает данные из состояния, заданного редуктором, ЕСЛИ да, тогда как я могу решить эту проблему?
Примечание. Я не использую здесь избыточную форму.