在React 15.1.0上重写react-addons功能

时间:2016-06-14 09:16:42

标签: javascript reactjs redux react-redux

如果不使用' LinkedStateMixin'我将如何重写以下代码?由于我正在升级到React 15.0并且不推荐使用此功能。

reactMixin(LoginView.prototype, React.addons.LinkedStateMixin);


<div className='form-group'>
  <input type='text'
    className='form-control input-lg'
    valueLink={this.linkState('email')}
    placeholder='Email' />
</div>
<div className='form-group'>
  <input type='password'
    className='form-control input-lg'
    valueLink={this.linkState('password')}
    placeholder='Password' />
</div>

以上代码是使用它的地方,我使用Redux来管理状态。

2 个答案:

答案 0 :(得分:3)

你可以自己管理这个州。你在使用babel / es6吗?

  class MyForm extends React.Component {
    state = {}

    emailChanged = (e) => {
      this.setState({ email: e.target.value });
    }

    passwordChanged = (e) => {
      this.setState({ password: e.target.value });
    }

    render() {
       const { email, password } = this.state;
       return (
         <form>
           <div className='form-group'>
             <input type='text'
               className='form-control input-lg'
               value={email}
               placeholder='Email'
               onChange={this.emailChanged} />
            </div>
            <div className='form-group'>
              <input type='password'
                className='form-control input-lg'
                value={password}
                placeholder='Password'
                onChange={this.passwordChanged} />
           </div> 
         </form>
       );
    }
 }

示例:http://www.webpackbin.com/EJjZTnu4Z

答案 1 :(得分:0)

如果您查看Two-Way Binding Helpers doc page,就会有一个示例显示如何在不使用LinkedStateMixin的情况下执行相同操作。