繁体   English   中英

获取 ReactJS 中 state 中的搜索值

[英]Get search value in state in ReactJS

我是 ReactJS 的新手,并试图获取搜索输入框值并将其存储在 state 中。

我的代码:

<form className="search-form" onSubmit={this.handleSubmit}>
      <input type="search" name="search" ref={(input) => this.query = input}
                               placeholder="Search..." />
      <button className="search-button" type="submit" id="submit">Go!</button>
</form>

内部构造函数:

this.handleSubmit = this.handleSubmit.bind(this);

handleSubmit = e => {
        e.preventDefault();
        this.setState({search: this.query.value});
        console.log(this.state.search) //Returns undefined
        e.currentTarget.reset();
    }

非常感谢任何帮助。

我建议您使用受控输入方法。

state = {
   value: null,
}

handleValue = (e) => this.setState({ value: e.target.value });

然后你不必使用ref

<input 
   type="search" 
   name="search" 
   onChange={this.handleValue}
   placeholder="Search..." 
/>

此代码可以帮助您:

import React from 'react';
class search extends React.Component{
    constructor(props)
    {
      super(props);
      this.state = {value: ''};
      this.addValue = this.addValue.bind(this);
      this.updateInput = this.updateInput.bind(this);
    }

    addValue(evt)
    {
      evt.preventDefault();
      if(this.state.value !==undefined)
      {
        alert('Your input value is: ' + this.state.value)
      }
    }
    updateInput(evt){
      this.setState({value: evt.target.value});   
        }

    render()
    {
      return (
      <form onSubmit={this.addValue}>
      <input type="text" onChange={this.updateInput} /><br/><br/>
      <input type="submit" value="Submit"/>
      </form>
      )
    }
}
export default search;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM