0
目前我遇到了从ReactJS中的动态组件获取价值的问题。如何获取动态输入文本的价值在reactJS
实施例:
我有5复选框:A, B, C, D, E
。当我检查A
复选框时,我想添加新的输入文本A
,当我检查B
时添加新的输入文本B
等等。当我取消选中一个复选框时,我想删除相应的输入文本。
我有按钮“保存”,当我点击保存时,我想获得渲染输入文本的值。任何人有想法?
以下是我的代码。这不像上面的例子。我呈现一个表格=>表格列表=>列表项目=>选择选项。所以我想在表中的所有选择值:
var React = require('react');
var AssignmentTranslatorItem = React.createClass({
getInitialState: function() {
return {
selectedItem: -1
};
},
componentDidMount: function() {
return {};
},
renderTranslator: function(translatorList) {
var items = []
var arrTrans = translatorList.arrTrans
var selectedItem = translatorList.selectedItem
if(selectedItem == -1)
items.push(<option value="-1" selected>(Select Translator)</option>)
else
items.push(<option value="-1">(Select Translator)</option>)
for (var i in arrTrans) {
if(selectedItem == arrTrans[i].id)
items.push(<option value={arrTrans[i].id} selected>{arrTrans[i].username}</option>)
else
items.push(<option value={arrTrans[i].id}>{arrTrans[i].username}</option>)
}
return items
},
render: function() {
return (
<tr>
<td>{this.props.languageName}</td>
<td>
<select className="form-control" ref="translatorList">
{this.renderTranslator(this.props.translatorList)}
</select>
</td>
</tr>
);
}
});
var AssignmentTranslatorList = React.createClass({
render: function() {
var tmp = this.props.data.map(function (obj, index) {
return (
<AssignmentTranslatorItem languageName={obj.lang.name} translatorList={obj} key={index}></AssignmentTranslatorItem>
);
});
return (
<tbody>
{tmp}
</tbody>
);
}
});
module.exports = React.createClass({
getInitialState: function() {
return {
data: [
{
"lang": {
"id": 1,
"name": "English"
},
"arrTrans": [
{
"id": 3,
"username": "hhuihuihiuhuihiuh"
},
{
"id": 4,
"username": "zcdscac"
}
],
"selectedItem": 4
},
{
"lang": {
"id": 2,
"name": "French"
},
"arrTrans": [
{
"id": 3,
"username": "hhuihuihiuhuihiuh"
}
],
"selectedItem": -1
}
]
};
},
componentDidMount: function() {
},
render: function() {
return (
<div className="table-responsive">
<table className="table table-bordred table-striped">
<thead>
<tr>
<th>Language</th>
<th>Assigned Translator</th>
</tr>
</thead>
<AssignmentTranslatorList data={this.state.data} ref='assignTranslatorList'></AssignmentTranslatorList>
<tfoot>
<tr>
<td></td>
<td>
<button type="button" className="btn btn-success">
Assign
</button>
</td>
</tr>
</tfoot>
</table>
<div className="clearfix"></div>
</div>
);
}
});
请提供一些代码=请尝试。 – morels
对不起,只是更新我的代码,请参阅:) –
你的问题是,如何获得文本输入的价值,对不对?为什么不把这些值存储为状态呢? – FranBran