我只想将嵌套数组数据存储到单个变量中。
我有这段代码:
var indents = [];
for (var i = 1; i <= this.state.box; i++){
indents.push(<Input fluid label={i} placeholder='Item Description..' style={{padding: 5}} />);
}
<Input label={{ basic: true, content: 'box' }}
labelPosition='right'
placeholder='Enter Quantity...'
size = 'small'
value={this.state.box}
onChange={this.handlebox}
/>
这意味着如果我输入一个数字框,另一个字段将显示我输入的相同数量的字段。但问题是我无法获得所有物品的价值。
Example: if I input to a box field with 5,
another 5 fields show, name items
我怎样才能得到这样的值:
Values = [valueOf_field1, valueOf_field2, valueOf_field3, valueOf_field4, valueOf_field5];
答案 0 :(得分:1)
您可以使用refs
来实现此目的。如果你想要验证和东西,我建议formsy
可以做得更好。但这种方式是一种教育你的简单方法。
// Get all the inputs to a ref object.
render() {
var indents = [];
for (var i = 1; i <= this.state.box; i++){
indents.push(<Input ref={(input) => this[`input_${i}`] = input;} fluid label={i} placeholder='Item Description..' style={{padding: 5}} />);
}
}
然后假设您有一个onSubmit
方法来获取所有值。像这样获取值
onSubmit = () => {
const values = [];
for (var i = 1; i <= this.state.box; i++){
values.push(this[`input_${i}`].value);
}
// now your `values` variable will have all the values
}