Réagir empêcher la soumission d'un formulaire lorsque la touche entrée est pressée à l'intérieur de l'entrée

Réagir empêcher la soumission d'un formulaire lorsque la touche entrée est pressée

J'ai le texte suivant Réagir Barre de Recherche de la composante où le conteneur parent pouvez appeler à l'aide

<SearchBar onInputChange={this.handleInputChange} />

À chaque fois que l'utilisateur modifie l'entrée, le conteneur parent sera notifié. C'est pourquoi ma barre de recherche n'a besoin d'aucun bouton soumettre.

Cependant, j'ai constaté que si j'appuie sur entrer à l'intérieur de ma barre de recherche, l'ensemble de la page est rafraîchie. Et je ne veux pas que.

- Je savoir si j'ai un bouton dans le formulaire, que je pourrais appeler de l'événement.preventDefault(). Mais dans ce cas je n'ai pas de bouton donc je ne sais pas quoi faire ici

class SearchBar extends Component {
    constructor(props) {
        super(props);
        this.state = { value: '' };
        this.handleChange = this.handleChange.bind(this)
    }

    handleChange(e) {
        this.setState({ value: e.target.value });
        this.props.onInputChange(e.target.value);
    }

    render() {
        return (
        <div id="search-bar">
            <form>
            <FormGroup controlId="formBasicText">
                <FormControl
                type="text"
                onChange={this.handleChange}
                value={this.state.value}
                placeholder="Enter Character Name"
                />          
            </FormGroup>
            </form>
        </div>
        );
    }
}

export default SearchBar
Est-il une raison pour laquelle vous devez utiliser une balise de formulaire? Si vous remplacez la par un div, puis entrez ne se soumettent pas.
Div seraient mot de trop. J'ai eu un formulaire juste au cas où je veux ajouter des champs dans l'avenir et de la forme permet plus de contrôle

OriginalL'auteur ErnieKev | 2017-05-03