Я получаю информацию о членах Конгресса через API ProPublica. Я хотел бы, чтобы пользователь мог выбрать свое состояние в раскрывающемся списке и чтобы на его веб-странице отображались сведения о конгрессменах (через штат). Я чувствую, что забываю цикл for, но я даже не знаю, где его поставить. В основном, я не уверен, как подключить пользовательский вход в мой реквизит / состояние. Это то, что я до сих пор:
FORM.js
<form onSubmit={props.handleSubmit}>
<input type="text" name="first_name" value={props.first_name} onChange={props.handleChange}/>
<input type="text" name="last_name" value={props.last_name} onChange={props.handleChange}/>
<select name="stateSelect" value={props.stateSelect} onChange={props.handleChange}>
<option></option>
<option id="AL" name="AL">Alabama</option>
<option id="AK" name="AK">Alaska</option>
<option id="AZ" name="AZ">Arizona</option>
// the following 50 states are here
</select>
<button>FIND YOUR REPRESENTATIVE</button>
</form>
APP.JS ниже
class App extends Component {
constructor(props) {
super(props)
this.state = {
first_name: ' ',
last_name: ' ',
stateSelect: ' '
}
}
handleChange = e => {
const { name, value } = e.target
this.setState({
[name]: value,
})
}
handleSubmit = e => {
e.preventDefault()
const newCongress = {
first_name: this.state.first_name,
last_name: this.state.last_name,
stateSelect: this.state.stateSelect
}
this.props.getCongressMembers(newCongress)
this.setState(prevState =>({
first_name: "",
last_name: ""
}))
}
componentDidMount() {
this.props.getCongressMembers()
}
render() {
const mappedCongress = this.props.congressMembers.map(member => {
return <div key={member.id}>
<h1>{member.first_name} {member.last_name}</h1>
<h4>Tweet: #{member.twitter_account}</h4>
<h5>{member.state}</h5>
</div>
})
return (
<div>
<SVGMap map={USA} />
<Form
handleSubmit={this.handleSubmit}
handleChange={this.handleChange}
first_name={this.state.first_name}
last_name={this.state.last_name}
stateSelect={this.state.stateSelect}
/>
{mappedCongress}
</div>
);
}
}
export default connect(state => state, { getCongressMembers })(App)