我正在使用react js开发一个应用程序。 目前停留在如何加载选择的更改事件的不同形式。
var Eventoption = React.createClass({
getInitialState: function() {
return {
value: 'A'
}
},
change:function(event){
this.setState({value: event.target.value});
},
render : function(){
return <div className="form-group">
<select onChange={this.change} value={this.state.value} className="form-control">
<option value="A">Event1</option>
<option value="V">Event2</option>
<option value="S">Event3</option>
</select>
<p></p>
<p>{this.state.value}</p>
</div>
}
});
所以在event2上选择我要加载不同的表单 哪个说我把它保存在event2.js
例如
var Event2Form = React.createClass({
render:function() {
return
<h3><u>Add Event</u></h3>
<form action="index.php" method="post" id="event2Form">
<div className="form-group">
<label for="exampleEventId">Event Id</label>
<input type="text" name="event_id" className="form-control" id="event_id" placeholder="Enter Event Id" />
</div>
<div className="form-group">
<label for="exampleEventName">Event Name</label>
<input type="text" name="event_name" className="form-control" id="event_name" placeholder="Enter Event name" />
</div>
</form>
</div>;
}
});
window.Event2Form = Event2Form;
让我知道,除了现有的方法之外,如何实现目标或任何其他更好的方法。
答案 0 :(得分:1)
最简单的方法之一。
var Eventoption = React.createClass({
getInitialState: function() {
return {
value: 'A'
}
},
change:function(event){
this.setState({value: event.target.value});
},
render : function(){
var formCmp;
if (this.state.value === 'A')
formCmp = <Event1Form />
else if (this.state.value === 'V')
formCmp = <Event2Form />
return (
<div className="form-group">
<select onChange={this.change} value={this.state.value} className="form-control">
<option value="A">Event1</option>
<option value="V">Event2</option>
<option value="S">Event3</option>
</select>
<p></p>
<p>{this.state.value}</p>
{formCmp}
</div>
);
}
});
var Event2Form = React.createClass({
render:function() {
return
<h3><u>Add Event</u></h3>
<form action="index.php" method="post" id="event2Form">
<div className="form-group">
<label for="exampleEventId">Event Id</label>
<input type="text" name="event_id" className="form-control" id="event_id" placeholder="Enter Event Id" />
</div>
<div className="form-group">
<label for="exampleEventName">Event Name</label>
<input type="text" name="event_name" className="form-control" id="event_name" placeholder="Enter Event name" />
</div>
</form>
</div>;
}
});