2017-11-04 8 views
0

私はReact with Reduxアプリケーションをフォームに持っています。このフォームは、ユーザーがonBlur属性を使用してフォームを記入するときにユーザーが入力した内容の参照を行います。ユーザがonKeyPressを介してEnterキーを押すと、同じルックアップアクションが実行されます。React/Redux - onKeyPressもonBlurを起動します

このルックアップに失敗すると、画面にエラーが表示されます。しかし、ユーザーがEnterキーを押すと、onKeyPressの場合とonBlurの場合の2つのエラーが表示されます。 onKeyPressが解雇された場合、onBlurが発砲するのを防ぐにはどうすればよいですか?

私のサンプルコード:

<TextFieldComponent 
    placeholder="Type in text here" 
    value={this.props.text} 
    onBlur={() => this.props.validation()} 
    onKeyPress={() => this.props.validation()} 
> 
+0

onBlurイベントで 'e.keyCode!= 13'をチェックできます。 –

+0

@GavinBruce私は 'onBlur = {(e)=> if(e.keyCode!= 13){this.props.validation()}}'を試みましたが、それもうまくいきませんでした。エンターキーを押すと、まだonKeyPressとonBlurの両方がトリガされます。 – noblerare

答えて

0

onBlurイベントがonKeyPressイベント発生しませんが、入力がフォーカスを失ったときだけ。

同じ入力を2回検証しない場合は、入力値を追跡して、値が変更された場合にのみ検証する必要があります。

関連する問題