代码之家  ›  专栏  ›  技术社区  ›  john doe

onChange React将值移动到对象中

  •  0
  • john doe  · 技术社区  · 7 年前

      handleTextChange = (e) => {
    
        this.setState({
            [e.target.name] : e.target.value
        })
    
      }
    
      render() {
        return (
          <div>
            <h1>Add Movie</h1>
            <input type="text" name="name" onChange={this.handleTextChange} placeholder="Enter movie name" />
            <input type="text" name="year" onChange={this.handleTextChange} placeholder= "Enter movie year" />
    

    每当我键入state时,它都会根据输入字段的名称创建一个新属性,并在文本框中赋值。这很好用,我最终得到了:

    state = {
      name : "Movie Name", 
      year : "1992"
    }
    

    state = {
    
        movie: { 
         name : "Movie Name", 
         year : "1992"
    } 
    }
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   nanobar    7 年前

    您只想在具有静态名称的对象中设置它?

    this.setState(state => ({
      movie: {
        ...state.movie,
        [e.target.name]: e.target.value
      }
    }));
    

    PS你的初始状态应该是 movie: {}