Advertisement
Guest User

Untitled

a guest
Feb 12th, 2016
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. const FormMixin = {
  2. getDefaultRequestChange(field) {
  3. let h = this._defaultFieldHandlers = this._defaultFieldHandlers || {}
  4. return h[field] = h[field]
  5. ? h[field]
  6. : value => this.setState({[field]: value})
  7. },
  8. link(field) {
  9. let requestChange = (this.handlers && this.handlers[field])
  10. ? this.handlers[field]
  11. : this.getDefaultRequestChange(field)
  12.  
  13. return {requestChange, value: this.state[field]}
  14. }
  15. }
  16.  
  17. class FormExample extends React.Component {
  18.  
  19. state = {
  20. name: "",
  21. email: ""
  22. }
  23.  
  24. handlers = {
  25. name: value => {
  26. this.setState({name: value.toUpperCase()})
  27. }
  28. }
  29.  
  30. render() {
  31. return <div>
  32. <input type="text" valueLink={this.link('name')} /><br />
  33. <input type="email" valueLink={this.link('email')} />
  34. </div>
  35. }
  36.  
  37. }
  38.  
  39. Object.assign(FormExample.prototype, FormMixin)
  40.  
  41. React.render(<FormExample />, document.body)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement