Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const FormMixin = {
- getDefaultRequestChange(field) {
- let h = this._defaultFieldHandlers = this._defaultFieldHandlers || {}
- return h[field] = h[field]
- ? h[field]
- : value => this.setState({[field]: value})
- },
- link(field) {
- let requestChange = (this.handlers && this.handlers[field])
- ? this.handlers[field]
- : this.getDefaultRequestChange(field)
- return {requestChange, value: this.state[field]}
- }
- }
- class FormExample extends React.Component {
- state = {
- name: "",
- email: ""
- }
- handlers = {
- name: value => {
- this.setState({name: value.toUpperCase()})
- }
- }
- render() {
- return <div>
- <input type="text" valueLink={this.link('name')} /><br />
- <input type="email" valueLink={this.link('email')} />
- </div>
- }
- }
- Object.assign(FormExample.prototype, FormMixin)
- React.render(<FormExample />, document.body)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement