일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- algorithmStudy
- 서평
- 돈
- 성분
- 책을알려주는남자
- 백준알고리즘
- algorithmtraining
- 재테크
- 자바스크립트
- Java
- 자바
- 지혜를가진흑곰
- 알고리즘 공부
- 다독
- 프로그래밍언어
- 투자
- 채권
- 알고리즘트레이닝
- 독후감
- algorithmTest
- 책알남
- 화장품
- 주식
- 경제
- 알고리즘공부
- JavaScript
- C++
- 프로그래머스 알고리즘 공부
- 독서
- C
Archives
- Today
- Total
탁월함은 어떻게 나오는가?
[React] const { value, name } = e.target; 에서 value가 사용되지 않을 때 본문
[Snow-ball]front/REACT 리액트
[React] const { value, name } = e.target; 에서 value가 사용되지 않을 때
Snow-ball 2021. 4. 3. 18:01반응형
VS코드에서 React 코드를 하다가보니 제대로 값이 전달되지 않았다. 무슨일인가 찾아봤더니 value 부분이 색깔이 짙어져있었다. 짙어져있다면 'value'가 선언은 되었지만 해당 값이 읽히지는 않는중이다.
여러가지 시도하다가 보니 해결한 방법은 [name]: value, 로 수정하는 것이 해결법이였다.
전체 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
// import './src/uss/component/userDetail.css';
import React, { useState, useCallback } from 'react';
import axios from 'axios';
import { Link } from 'react-router-dom';
const UserDetail = () => {
const [inputs, setInputs] = useState({
username: ' ',
password: ' ',
});
const { username, password } = inputs; // 비구조화 할당을 통해 값 추출
const handleChange = useCallback(
(e) => {
const { value, name } = e.target; // 우선 e.target 에서 name 과 value 를 추출
setInputs({
...inputs, // 기존의 input 객체를 복사한 뒤
[name]: value, // name 키를 가진 값을 value 로 설정
});
},
[inputs]
);
const login = (e) => {
e.preventDefault();
console.log(setInputs);
alert('do Login');
axios
.post(`http://localhost:8080/users/login`, {
username,
password,
})
.then((res) => {
alert('로그인 되셨습니다');
console.log(res);
// alert('res = ' + JSON.stringify(res));
// alert('res.data = ' + JSON.stringify(res.data));
alert('res.data.data = ' + res.data.data);
alert('JOSN.stringify(res.data.data) = ' + JSON.stringify(res.data.data));
setInputs(res.data);
})
.catch(() => {
alert('가입하지 않은 아이디이거나, 잘못된 비밀번호입니다.');
});
};
return (
<>
<form onSubmit={(e) => e.preventDefault()}>
<h2>로그인</h2>
<div className="imgcontainer">
<img src="img_avatar2.png" alt="Avatar" className="avatar" />
</div>
<div className="container">
<label htmlFor="username">
<b>ID</b>
</label>
<input type="text" placeholder="Enter Username" name="username" value={inputs.username || ''} onChange={handleChange} required />
<label htmlFor="password">
<b>Password</b>
</label>
<input type="password" placeholder="Enter Password" name="password" value={inputs.password || ''} onChange={handleChange} required />
<button type="submit" onClick={login}>
로그인
</button>
<div className="container" />
<Link to="/">
<button type="submit" className="cancelbtn">
취소
</button>
</Link>
</div>
</form>
</>
);
};
export default UserDetail;
|
cs |
반응형
'[Snow-ball]front > REACT 리액트' 카테고리의 다른 글
react redux state 초기화 (0) | 2021.06.29 |
---|---|
리덕스(Redux의 간단한 개념정리) (0) | 2021.04.20 |
[React] state / useState / useEffect (0) | 2021.04.03 |
[React] Hook을 사용하기 위한 5가지 규칙 (0) | 2021.04.03 |
윈도우 깃배쉬에서 리액트 설치할때 에러 Error: EPERM: opration not permitted, mkdir 'C:\Users\LEE' command not found: create-react-app (0) | 2021.03.09 |
Comments