}
handleChange(event) {
- console.log(event);
+ const target = event.target;
+ const value = target.value;
+ this.setState({
+ value,
+ });
}
handleAddTerm(event) {
}
handleRemoveTerm(event) {
-
+ const index = this.props.index;
+ this.props.onRemoveTerm(index);
}
render() {
return (
<div key={this.props.index} className="search-term">
<input type="text" onChange={this.handleChange}/>
- <button>Remove</button>
+ <button onClick={this.handleRemoveTerm}>Remove</button>
</div>
);
}
SearchTerm.propTypes = {
index: PropTypes.number.isRequired,
onAddTerm: PropTypes.func.isRequired,
+ onRemoveTerm: PropTypes.func.isRequired,
};
export default SearchTerm;
};
this.handleSubmit = this.handleSubmit.bind(this);
this.handleAddTerm = this.handleAddTerm.bind(this);
+ this.handleRemoveTerm = this.handleRemoveTerm.bind(this);
this.addEmptyTerm = this.addEmptyTerm.bind(this);
this.createEmptyTerm = this.createEmptyTerm.bind(this);
}
handleSubmit(event) {
event.preventDefault();
+ const target = event.target;
+ console.log(target);
const terms = this.state.terms;
- console.log(terms);
+ terms.forEach((term) => {
+ console.log(term);
+ });
}
handleAddTerm(event) {
- console.log(event);
this.addEmptyTerm();
}
+ handleRemoveTerm(index) {
+ const terms = this.state.terms;
+ this.setState({
+ terms: [...terms.slice(0, index), ...terms.slice(index + 1)],
+ });
+ }
+
addEmptyTerm() {
const term = this.createEmptyTerm();
this.setState({
createEmptyTerm() {
const index = this.state.terms.length;
return (
- <SearchTerm key={index} index={index} onAddTerm={this.handleAddTerm}/>
+ <SearchTerm key={index} index={index} onAddTerm={this.handleAddTerm} onRemoveTerm={this.handleRemoveTerm}/>
);
}