我正在学习ReactJS,我想了解如何使用简单的onclick事件在ReactJS中获取输入文本值.我已经按照那里的教程,虽然我能够获得文本输入的参数.但不知何故,我无法获得它的价值.我知道这是一个愚蠢的问题,但我正在努力解决这个问题.请检查我的代码,让我知道它有什么问题.
var MyComponent = React.createClass({
handleClick: function() {
if (this.refs.myInput !== null) {
var input = this.refs.myInput;
var inputValue = input.value;
alert("Input is", inputValue);
}
},
render: function() {
return (
<div>
<input type="text" ref="myInput" />
<input
type="button"
value="Alert the text input"
onClick={this.handleClick}
/>
</div>
);
}
});
ReactDOM.render(
<MyComponent />,
document.getElementById('container')
);
Run Code Online (Sandbox Code Playgroud)
这里是相同的jsfiddle:jsfiddle链接
Ale*_* T. 50
首先,你不能传递给alert第二个参数,而是使用连接
alert("Input is " + inputValue);
Run Code Online (Sandbox Code Playgroud)
但是,为了更好地从输入中获取值,请使用这样的状态
var MyComponent = React.createClass({
getInitialState: function () {
return { input: '' };
},
handleChange: function(e) {
this.setState({ input: e.target.value });
},
handleClick: function() {
console.log(this.state.input);
},
render: function() {
return (
<div>
<input type="text" onChange={ this.handleChange } />
<input
type="button"
value="Alert the text input"
onClick={this.handleClick}
/>
</div>
);
}
});
ReactDOM.render(
<MyComponent />,
document.getElementById('container')
);Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="container"></div>Run Code Online (Sandbox Code Playgroud)
有两种方法可以执行此操作。
在包含文本输入的构造函数中创建一个状态。将onChange事件附加到每次都会更新状态的输入框。然后onClick可以警告状态对象。
handleClick:function(){alert(this.refs.myInput.value); },
| 归档时间: |
|
| 查看次数: |
69569 次 |
| 最近记录: |