티스토리 뷰
original code.
setPeople function 은 multiple rows의 선택과는 관계없이 선택된 row가 single row인지만 확인한다.
1. 리덕스에서 받아온 selectedRows의 element 들을 굳이 각자 따로 받아와서 variable을 만들 필요가 없다.
2. array를 map 으로 loop 해서 받아온 것을 다시 assign하는 과정에서 다시 array 로 assign 하는 과정을 불필요하게 거침.
function setPeople(result: any) {
setDropdownList(result.map((people:any) => ({ label : `${people.name}(${people.email})`, value : people.id })));
const verifyPeopleName = selectedRows.map((row:any) => row.verify);
const verifyPeopleEmail = selectedRows.map((row:any) => row.verifyEmail);
const verifyPeopleId = selectedRows.map((row:any) => row.verifyInfo?.userId);
if (verifyPeopleName && verifyPeopleName.length === 1 && verifyPeopleEmail && verifyPeopleEmail.length === 1 && verifyPeopleId && verifyPeopleId.length === 1) {
const [verifyPeopleName] = verifyPeopleName;
const [verifyPeopleEmail] = verifyPeopleEmail;
const [verifyPeopleId] = verifyPeopleId;
if (verifyPeopleName && verifyPeopleEmail && verifyPeopleId) {
setSelectedPeople({ label: `${verifyPeopleName}(${verifyPeopleEmail})`, value: verifyPeopleId });
}
}
}
refactoring code
결국 multiple row 의 선택이 중요한 것이 아니라 single row 선택이 중요한 것 이기에 조건식 하나로 처리.
function setPeople(result: any) {
setDropdownList(result.map((people:any) => ({ label : `${people.name}(${people.email})`, value : people.id })));
if (selectedRows.length === 1) setSelectedPeople(selectedRows.map((row: any) => ({ label: `${row.name}(${row.email})`, value : row.id })));
}
summary & questions
- 기존 코드를 이해하지 않고 그냥 복사붙여넣기 하지 말자.
- prop으로 받아와서 state가 변하지 않을 때의 useState의 불필요. const로 처리가능
'JavaScript' 카테고리의 다른 글
Window event (1) | 2022.10.07 |
---|---|
window in Javascript (0) | 2022.10.06 |
short circuit evaluation (0) | 2020.12.26 |
Spread Operator (0) | 2020.12.26 |
Type Conversion in Javascript (number, string) (0) | 2020.09.15 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Collection Framework
- easy algorithm
- code refactoring
- hackerrank
- spring boot application
- 알고리즘
- Javascript Algorithm
- math.max
- HashMap
- substring()
- ... in Javascript
- hackerrank javascript solution
- C++
- repeat()
- easy javascript algorithm
- hackerrank solution
- hackerrank javascript
- 프로그래머스 알고리즘
- rest parameter
- HackerRank Algorithm
- math.abs
- string class in java
- java
- algorithm
- compareTo()
- javascript
- equals()
- Object type casting
- 프로그래머스
- 프로그래머스 알고리즘문제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함