From 2095ce968842f024e199b8cb7604550c3b942ed4 Mon Sep 17 00:00:00 2001 From: slikNET Date: Thu, 13 Jul 2023 19:51:50 +0300 Subject: [PATCH 1/3] form with useRef --- src/App.js | 5 +++- src/components/UI/Button/Button.js | 13 +++++++++ src/components/UI/Input/Input.js | 13 +++++++++ src/components/Users/UserForm/UserForm.js | 35 +++++++++++++++++++++++ src/components/Users/Users.js | 14 +++++++++ src/index.js | 4 +-- 6 files changed, 81 insertions(+), 3 deletions(-) create mode 100644 src/components/UI/Button/Button.js create mode 100644 src/components/UI/Input/Input.js create mode 100644 src/components/Users/UserForm/UserForm.js create mode 100644 src/components/Users/Users.js diff --git a/src/App.js b/src/App.js index 3c96b66..e6642ef 100644 --- a/src/App.js +++ b/src/App.js @@ -1,9 +1,12 @@ import React from 'react'; +import Users from "./components/Users/Users"; const App = () => { + console.log('render App'); + return ( <> - + ); }; diff --git a/src/components/UI/Button/Button.js b/src/components/UI/Button/Button.js new file mode 100644 index 0000000..679b6b9 --- /dev/null +++ b/src/components/UI/Button/Button.js @@ -0,0 +1,13 @@ +import React from 'react'; + +const Button = ({type, text, ...props}) => { + console.log('render Button'); + + return ( +
+ +
+ ); +}; + +export default Button; \ No newline at end of file diff --git a/src/components/UI/Input/Input.js b/src/components/UI/Input/Input.js new file mode 100644 index 0000000..cdbace1 --- /dev/null +++ b/src/components/UI/Input/Input.js @@ -0,0 +1,13 @@ +import React, {forwardRef} from 'react'; + +const Input = forwardRef(({type, name, value, onChange, ...props}, ref) => { + console.log('render Input'); + + return ( +
+ +
+ ); +}); + +export default Input; \ No newline at end of file diff --git a/src/components/Users/UserForm/UserForm.js b/src/components/Users/UserForm/UserForm.js new file mode 100644 index 0000000..26a3ffa --- /dev/null +++ b/src/components/Users/UserForm/UserForm.js @@ -0,0 +1,35 @@ +import React, {useRef} from 'react'; + +import Input from "../../UI/Input/Input"; +import Button from "../../UI/Button/Button"; + +const UserForm = () => { + console.log('render UserForm'); + + const nameRef = useRef(''); + const usernameRef = useRef(''); + const emailRef = useRef(''); + const phoneRef = useRef(''); + + const onSubmitHandler = (e) => { + e.preventDefault(); + + console.log(nameRef.current.value) + console.log(usernameRef.current.value) + console.log(emailRef.current.value) + console.log(phoneRef.current.value) + } + + return ( +
onSubmitHandler(e)}> + + + + + +