我是React.js的新手,对不起,如果你的问题听起来太蠢了。
我试图在输入字段为空时禁用按钮。 React中的最佳方法是什么?
我正在做类似下面的事情:
- <input ref="email"/>
- <button disabled={!this.refs.email}>Let me in</button>
它是否正确?
它不仅仅是动态属性的重复,因为我也很好奇从一个元素到另一个元素传输/检查数据。
您需要将输入的当前值保持在状态(或将值
up to a parent via a callback function,或
sideways或<您的应用程序的状态管理解决方案在这里>中的更改,以便最终作为道具传递回您的组件)所以你可以导出禁用道具的按钮。
使用状态示例:
- <Meta charset="UTF-8">
- <script src="https://fb.me/react-0.13.3.js"></script>
- <script src="https://fb.me/JSXTransformer-0.13.3.js"></script>
- <div id="app"></div>
- <script type="text/jsx;harmony=true">void function() { "use strict";
- var App = React.createClass({
- getInitialState() {
- return {email: ''}
- },handleChange(e) {
- this.setState({email: e.target.value})
- },render() {
- return <div>
- <input name="email" value={this.state.email} onChange={this.handleChange}/>
- <button type="button" disabled={!this.state.email}>Button</button>
- </div>
- }
- })
- React.render(<App/>,document.getElementById('app'))
- }()</script>