代码之家  ›  专栏  ›  技术社区  ›  Monsieur Sam

使用React中的Add按钮添加输入

  •  -2
  • Monsieur Sam  · 技术社区  · 7 年前

    像这样的 this 但有投入。但问题是输入是不同的,所以我不知道怎么做

    class Main extends Component {
      constructor(props) {
        super(props);
        this.handleChangeCategorie = this.handleChangeCategorie.bind(this);
        this.state = {
          // I think it should be an array but I don't know
          valueCategorie: ""
        };
      }
      addCategorie(){
        //Something to add input 
      }
      handleSubmit() {
        //Make something with the categorie
      }
    
      handleChangeCategorie(e) {
        // I don't know if I can use this function for all Input
        this.setState({ valueCategorie: e.target.value });
      }
      render() {
        return <div className="container">              
            <input type="text" value={this.state.valueCategorie} onChange={this.handleChangeCategorie} />
            <Button onClick={this.addCategorie}>Add Input</Button>
            <Button onClick={this.handleSubmit}>Send</Button>
          </div>;
      }
    }
    

    我不认为这是同一个问题 here 因为他用一些东西来计数。也许还有别的办法?还是只有这样?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Rohith Murali    7 年前

    假设你有一个不同输入的数组,

    let inputArray = [<input id="1"/>,<input id="2"/>,<input id="3"/>]
    

    声明状态, 州={

    AddFirst=()=>this.setState({inputsRenderingArray:[...this.state.inputsRenderingArray, inputArray[0]]})
    
    AddSecond=()=>this.setState({inputsRenderingArray:[...this.state.inputsRenderingArray, inputArray[1]]})
    
    AddThird=()=>this.setState({inputsRenderingArray:[...this.state.inputsRenderingArray, inputArray[2]]})
    

    在渲染中,单击“添加”按钮,将这些项按入可渲染数组, 渲染(){

    return(
       <Button onClick={AddFirst}>Add First</Button>
       <Button onClick={AddSecond}>Add Second</Button>
       <Button onClick={AddSecond}>Add Second</Button>
    
       {this.state.inputsRenderingArray}
    )
    
    }