如何在JavaScript中将值存储到嵌套数组中?

时间:2017-08-26 02:52:59

标签: javascript arrays reactjs arraylist react-native

我只想将嵌套数组数据存储到单个变量中。

我有这段代码:

 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];

1 个答案:

答案 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
}