我正在查看一行代码,它为输入动态命名为refs,其中'item'是从零开始的递增值.
"input type ="text"ref = {'name'+ item} defaultValue = {item} />"
我如何循环使用这些动态参考来消除这些值?我试了这个没有运气.它告诉我对象未定义.(输入的长度等于添加元素的数量)
var arr = this.state.inputs;
var arrayLength = arr.length;
for (var i = 0; i < arrayLength; i++) {
var c = this.refs.name + i.value
alert(c);
}
Run Code Online (Sandbox Code Playgroud)
虽然,这可行,但它的动态,所以我需要循环它,而不是硬代码:
alert(this.refs.name0.value);
alert(this.refs.name1.value);
alert(this.refs.name2.value);
Run Code Online (Sandbox Code Playgroud)
我相信你需要为输入获取DOM对象,而不仅仅是refs(至少这是我的经验):
import ReactDOM from 'react-dom';
const values = {};
Object.keys(this.refs)
.filter(key => key.substr(0,4) === 'name')
.forEach(key => {
values[key] = ReactDOM.findDOMNode(this.refs[key])).value || null;
});
Run Code Online (Sandbox Code Playgroud)
祝好运!
| 归档时间: |
|
| 查看次数: |
1417 次 |
| 最近记录: |