2016-09-12 10 views
6

Kiedy próbuję zmienić stan input[type="email"] na onChange zdarzenia, korzystając this.setState({email: e.target.value}) otrzymuję ten pęk ostrzeżenia w konsoli (przeglądarka Chrome):Typ wiadomości e-mail wyświetla ostrzeżenie w konsoli. React

DOMPropertyOperations.js:143 The specified value "s" is not a valid email address. 
DOMPropertyOperations.js:143 The specified value "so" is not a valid email address. 
DOMPropertyOperations.js:143 The specified value "som" is not a valid email address. 
DOMPropertyOperations.js:143 The specified value "some" is not a valid email address. 

To dziwne zachowanie występuje po zmianie state, jeśli przejdą rzut danych props wszystko działa świetnie.

Wszelkie pomysły?

P.S. Dodałem noValidate do formularza.

+0

Czy możesz spróbować użyć 'this.isMounted()' like 'if (this.isMounted()) {this.setState ({email: e.target.value})}' –

+0

Spróbuję, ale don ' t rozumiem, jak to jest powiązane, jestem pewien, że komponent jest zamontowany – Smile0ff

+0

Próbowałem tego, co oferujesz, aw najnowszej wersji wersji "isMounted" metoda jest przestarzała, zamiast tego powinniśmy używać componentWillMount, ale w moim przypadku nie ma to sensu. – Smile0ff

Odpowiedz

0

Jest dobra dokumentacja o co walidacji można zrobić na wejściach e-mail, przeczytać i dostosować swoją postać:

Data form validation - Web developer guides | MDN

Sprawdź poprawność poprzez prawidłowe REGEX również, i zdecydować, czy chcesz walidacji żywo (keyup , keypress) lub właśnie wtedy, gdy tracisz skupienie na tym wejściu. Mam nadzieję, że pomaga ci to lepiej zrozumieć, a także pomóc w rozwiązaniu problemu.

+0

to pytanie nie dotyczy sprawdzania poprawności, to tylko obsługa kontrolowanego wejście w React, które rzuca mi dziwne ostrzeżenie – Smile0ff

Powiązane problemy