Я хочу ввести в текстовое поле некоторую текстовую строку, например, here's some random text
.Я хочу, чтобы here's some random text
отображался через alert()
внутри функции handleSubmit()
.
На данный момент, random 123
, который находится внутри StoryTextReducer
, действительно отображается через alert()
внутри handleSubmit()
, потому что он жестко запрограммирован.
Но я хочу вручную ввести текст в <textarea>
, сохранить этот текст в состоянии storyTextValue
(внутри StoryTextReducer
), а затем отобразить его с помощью alert()
в функции handleSubmit()
.
Что я делаю не так и как мне этого добиться?
Вот StoryTextReducer
:
import React, { Component } from 'react';
import {connect} from "react-redux";
import * as actionType from "../../store/actions/actions";
class CreateArticle extends Component {
constructor(props) {
super(props);
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
handleChange(event) {
this.setState({value: event.target.value});
this.props.articleIdValueRedux(event.target.value);
}
handleSubmit(event) {
this.setState({value: event.target.value});
this.props.storyTextValueRedux(event.target.value);
alert("Article saved" + '\n' + this.props.storyTextValue);
event.preventDefault();
}
render() {
return(
<div>
<form onSubmit={this.handleSubmit}>
<input onChange={this.handleChange} value={this.props.cityCodeValue} type="text" placeholder="city code"/>
<input type="text" placeholder="author name"/>
<textarea rows="2" cols="25" ></textarea>
<input type="submit" value="Submit"/>
</form>
</div>
);
}
}
const mapStateToProps = state => {
return {
articleIdValue: state.articleIdValue.articleIdValue,
storyTextValue: state.storyTextValue.storyTextValue
};
};
const mapDispatchToProps = dispatch => {
return {
articleIdValueRedux: (value) => dispatch({type: actionType.ARTICLE_ID_VALUE, value}),
storyTextValueRedux: (value) => dispatch({type: actionType.STORY_VALUE})
};
};
export default connect(mapStateToProps, mapDispatchToProps)(CreateArticle);
Вот StoryTextReducer
:
import * as actionType from '../store/actions/actions';
const initialState = {
storyTextValue: 'random 123'
};
const StoryTextReducer = (state = initialState, action) => {
switch (action.type) {
case actionType.CITY_CODE_VALUE:
return {
...state,
storyTextValue: action.value
};
default:
return state;
}
};
export default StoryTextReducer;