前提
React.jsにてパスワードの入力フォームを作っています。
実現したいこと
パスワードの入力フォームにパスワードを見えるようにする目のマークを配置したい
発生している問題・エラーメッセージ
現状のコードでは
目のマークをクリックすると
パスワードを表示したり、隠したりできるのですが、
パスワードを入力した状態で目のマークを押すと
入力していたパスワードが消えてしまう
該当のソースコード
React.js
1const Login = () => { 2 3 // パスワード表示制御用のstate 4 const [isRevealPassword, setIsRevealPassword] = useState(false); 5 6 const togglePassword = () => { 7 setIsRevealPassword((prevState) => !prevState); 8 } 9 10 useEffect(() => { 11 },[]); 12 13 return ( 14. 15. 16. 17 <input 18 placeholder='Old Password' className='form-control update_password_form' 19 type={isRevealPassword ? 'text' : 'password'} {...register('password', { required: true })} /> 20 21 <span 22 onClick={togglePassword} 23 role="presentation" 24 className="password_reveal" 25 > 26 {isRevealPassword ? 27 <FontAwesomeIcon icon={faEye} /> 28 : 29 <FontAwesomeIcon icon={faEyeSlash} /> 30 } 31 </span>
提示されているコード内には問題がないように見えます。
値が消えることで一番予想されるのはreact-hook-formのmethods.resetをuseEffectで仕込んであるパターンかと思いますが、判断がつきません。
問題になってそうなコードを上げていただければ、解答できるかもしれないです。
そうですね。UseEffectは追記のような状態で問題ないさそうなのですが、不思議です。。。
register宣言してる部分が質問には記載されていなくて、その周りのコード載せることは可能ですか?
記載のコード自体も今はそのままだと動かないので、動くそのままのコード載せていただけると助かります。
すいません。解決しました。大変失礼しました。

回答1件
あなたの回答
tips
プレビュー