terra-form
Version:
Components for building forms
59 lines (49 loc) • 1.49 kB
JSX
import React from 'react';
import Select from '../../../lib/Select';
class ControlledSelect extends React.Component {
constructor(props) {
super(props);
this.state = {
formData: {
animal: 'micros',
},
};
this.updateAnimal = this.updateAnimal.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
updateAnimal(e) {
const formData = Object.assign({}, this.state.formData);
formData[e.target.name] = e.target.value;
this.setState({ formData });
}
handleSubmit(e) {
e.preventDefault();
this.setState({
submittedData: Object.assign({}, this.state.formData),
});
}
render() {
return (
<div>
<form onSubmit={this.handleSubmit}>
<Select
name="animal"
options={[{ value: 'puppies', display: 'Puppies' },
{ value: 'kittens', display: 'Kittens' },
{ value: 'micros', display: 'Microprocessors' },
{ value: 'snaps', display: 'Snappers' }]}
onChange={this.updateAnimal}
value={this.state.formData.animal}
/>
<button id="select-submit" label="Submit" type="submit">Submit</button>
</form>
{ this.state.submittedData &&
<div>
<p id="select-submission">Submitted with data {JSON.stringify(this.state.submittedData)}</p>
</div>
}
</div>
);
}
}
export default ControlledSelect;