如何进行附加输入并将值发送到数组

Posted

技术标签:

【中文标题】如何进行附加输入并将值发送到数组【英文标题】:how to make an appending input and send value to an array 【发布时间】:2021-12-10 06:16:42 【问题描述】:

我想知道如何制作一个按钮,每次用户单击它时都会生成一个新的<input>,并且我希望将其值添加到数组中。

我使用了我找到的这段代码,但它只完成了第一部分!

import React from "react";
import  Button, FormInput  from "shards-react";
  
class Parameter extends React.Component 
  
    id = 1;
  
      state = 
          list: []
      
      
      item(id) 
          return (
            //   <div >

            //       <i className="material-icons" onClick=e => this.remove(`$id`) >delete</i>

            //   </div>);
            <FormInput className="mb-1" key=id id=`param-$id` placeholder="Competetion parameters"/>
            );
      
  
      remove(id) 
          const newList = this.state.list.filter(item =>item.key !== id);
          this.setState(
              list: newList
          )
      
  
      addParam = () => 
        
          const list = this.state.list;
          list.push( this.item(this.id) )
          this.setState( list );
          this.id++;
      
  
      render() 
  
          return (
              <div>
                  <Button onClick=e => this.addParam() theme="primary">Add parameter</Button>
                  
                      this.state.list.map(item => item)
                  
              </div>);
      
    
  
  
  export default Parameter;

我想知道如何将一组输入值放入数组 React 对我来说真的很新,如果有人可以帮助我,我会非常高兴!

【问题讨论】:

嗨!事实上,你的问题真的不清楚。请首先格式化您的问题(修复代码样式,例如缩进级别)并删除不必要的位..也可以添加整个组件或仅添加相关部分。之后,请再次阅读您的问题,并亲自查看您的要求是否清楚,是否可以澄清一下:) 您的示例代码中甚至存在一些语法问题(参见 setLoading) @JoelPeltonen 我说得更清楚了,现在可以了吗? 【参考方案1】:

我想知道如何制作一个按钮,每次用户单击它时都会生成一个新按钮,我希望将其值添加到数组中并使用 Axios 发布。

感觉这里有两个问题;一是如何处理状态(输入的数量),二是如何保存数组。

如果不检查 setLoading 的确切工作原理,我无法真正帮助第二个,但我有一个处理状态的建议。将每个输入值作为字符串添加到数组中,然后执行以下操作:

document.onreadystatechange = () => 
  const  useState  = React;

  function Boxes() 
    const [inputs, setInputs] = useState([]);

    const addInput = () => 
      setInputs(inputs.concat("abc"));
    ;

    const changeInput = (index, value) => 
      const updated = [...inputs];
      updated[index] = value;
      setInputs(updated);
    ;

    const handleAdd = () => 
      alert("Saving " + JSON.stringify(inputs));
    ;

    return (
      <div>
        <p>inputs</p>
        inputs.map((input, index) => 
          return (
            <div key=index><input
              type="text"
              value=input
              onChange=(e) => changeInput(index, e.target.value)
            /></div>
          );
        )
        <button onClick=addInput>Add new input</button>
        <hr />
        <button onClick=handleAdd>Add</button>
      </div>
    );
  

  ReactDOM.render(<Boxes />, document.querySelector("#root"));
;
<script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>

<div id="root"></div>

【讨论】:

谢谢!我再次编辑了这个问题,所以只显示了数组的问题。如何调用数组?

以上是关于如何进行附加输入并将值发送到数组的主要内容,如果未能解决你的问题,请参考以下文章

如何将角度5的输入值发送到grails 3?

如何有效地将数据附加到 C 中的 HDF5 表?

如何在Javascript中获取当前格式化日期dd/mm/yyyy并将其附加到输入[重复]

单击按钮后将名称附加到数组,然后将其发送到另一个视图控制器

如何将 JavaScript 对象/数组发送到前端 - node.js 应用程序

如何使用ajax将输入文件数据值发送到php页面