Multiples Forms渲染卡片

问题描述 投票:0回答:1

我在尝试渲染我传入输入的数据以呈现“联系”卡时遇到了很多麻烦。

我正在处理输入,相应地改变状态,但是当涉及到最终状态时,使用我的所有数据呈现“联系卡”,我只是不知道如何使其工作。

我认为问题在于我的“renderCard”方法。如果有人能帮我一把,我想我真的很亲密但到目前为止......

import React, { Component } from 'react';

export default class Todo extends Component {

  state = {
    nom: '',
    age: '',
    ville: '',
    items: [],
    start: 0
  };


  onChange = (event) => {
    this.setState({
      [event.target.name]: event.target.value
    });
  }

  onSubmit = (event) => {
    event.preventDefault();
    this.setState({
      nom: '',
      age: '',
      ville: '',
      items: [...this.state.items, this.state.nom, this.state.age, this.state.ville],
      start: 1
    });

  }


  renderCard = () => {
    return this.state.items.map((item, index) => {
        return (
            <div className="card" key={index}>
                {item.nom}
                {item.age} 
                {item.ville} 
            </div>    
        );
    });
}

  render() {
    return (
      <div>
        <div className="card mb-3">
          <div className="card-header">Ajouter une Personne</div>
          <div className="card-body">
            <form onSubmit={this.onSubmit}>
              <div className="form-group">
                <label htmlFor="name">Nom</label>
                <input
                  type="text"
                  className="form-control form-control-lg"
                  name="nom"
                  value={this.state.nom}
                  onChange={this.onChange}
                />
              </div>

              <div className="form-group">
                <label htmlFor="name">Age</label>
                <input
                  type="text"
                  className="form-control form-control-lg"
                  name="age"
                  value={this.state.age}
                  onChange={this.onChange}
                />
              </div>

              <div className="form-group">
                <label htmlFor="name">Ville</label>
                <input
                  type="text"
                  className="form-control form-control-lg"
                  name="ville"
                  value={this.state.ville}
                  onChange={this.onChange}
                />
              </div>


              <button className="btn btn-primary btn-block">Créez votre Fiche !</button>
            </form>
          </div>
        </div>


        {this.renderCard()}


      </div>
    );
  }
}
reactjs forms components
1个回答
0
投票

在提交状态下将项目设置为状态时出错。我希望这些项目应该是一个对象数组请检查下面的代码

onSubmit =(event)=> {event.preventDefault(); this.setState({nom:'',age:'',ville:'',items:[... this.state.items,{nom:this.state.nom,age:this.state.age,ville :this.state.ville}],开始:1});

© www.soinside.com 2019 - 2024. All rights reserved.