์ „์ฒด ๊ธ€ 128

[ React ] any[] ํ˜•์‹ length๊ฐ€ undefined๋กœ ๋œจ๋Š” ํ˜„์ƒ ํ•ด๊ฒฐ

https://kth990303.tistory.com/254 [typescript] JS์—์„œ length๊ฐ€ undefined๋กœ ๋œจ๋Š” ํ˜„์ƒ ๊ณ ์น˜๊ธฐ ๊ฐ์ฒด์˜ ๊ฐœ์ˆ˜๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด diaryList.length๋ฅผ console.logํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜ํƒ€๋‚˜๋Š” ํ˜„์ƒ์„ ์ˆ˜์ •ํ•ด๋ณด์ž. ๋ฌธ์ œ์  ์ผ๋‹จ diaryList๊ฐ€ ์ œ๋Œ€๋กœ ๋„˜์–ด์˜จ๊ฑด ๋งž๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด console.log๋กœ diaryList๋„ ์ณ๋ณด๋„. kth990303.tistory.com any[]๋กœ ์„ ์–ธ๋œ ๋ฐฐ์—ด์˜ length๋ฅผ ์ฐ์–ด๋ณด๋‹ˆ undefined๊ฐ€ ๋‚˜์™”๋‹ค. ๋„๋Œ€์ฒด ์™œ์ผ๊นŒ ์ฐพ์•„๋ณด๋‹ˆ ๋ฐฐ์—ด์ด key, value๋กœ ์ง์ง€์–ด์ง€๋Š” Objectํ™”๊ฐ€ ๋˜์–ด์„œ ๊ทธ๋ ‡๋‹ค๊ณ  ํ–ˆ๋‹ค..! ๊ทธ๋ž˜์„œ Object.keys(๋ฐฐ์—ด๋ช…).length ์ด๋Ÿฐ์‹์œผ๋กœ ์ฐ์–ด์ฃผ๋ฉด ๋‚˜์˜จ๋‹ค!

Programming/React 2022.07.22

[ React ] ๋ฌธ์ž์—ด ์น˜ํ™˜ ์—ฌ๋Ÿฌ ๊ฐœ (replace ํ•จ์ˆ˜)

[0,1] [0,1,2,3,4,5] ์ด๋Ÿฐ์‹์œผ๋กœ ๋˜์–ด์žˆ๋Š” ์š”์ผ ๋ฐฐ์—ด format์„ ๋ฐ”๊ฟ”์ฃผ๋ ค๊ณ  ํ•œ๋‹ค. ๋ฌธ์ž์—ด ์น˜ํ™˜ํ•  ๋•Œ๋Š” replace ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. const daysFormatter = (params: any) => { const days = params.value .replace('0', '์ผ') .replace('1', '์›”') .replace('2', 'ํ™”') .replace('3', '์ˆ˜') .replace('4', '๋ชฉ') .replace('5', '๊ธˆ') .replace('6', 'ํ† '); return days; }; ์—ฌ๋Ÿฌ ๊ฐœ ์น˜ํ™˜ํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ, .replace๋ฅผ ๋ถ™์—ฌ๋‚˜๊ฐ€๋ฉด ๋œ๋‹ค. ์ฐธ๊ณ ๋กœ ์š”์ผ ๋ฐฐ์—ด ํŠน์„ฑ์ƒ ์•ˆ์— [0,0] ์ด๋ ‡๊ฒŒ ์ค‘๋ณต๋  ์ผ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— replace ํ•จ์ˆ˜๋กœ๋„ ์ถฉ๋ถ„ํžˆ ์ปค๋ฒ„..

Programming/React 2022.07.19

[ React ] ๊ทธ๋ฆฌ๋“œ ๋ฐ์ดํ„ฐ์…‹์—์„œ ํŠน์ • ์นผ๋Ÿผ ๊ฐ’ ์ฐพ๊ธฐ (find ํ•จ์ˆ˜ / lookup๊ฐ™์€ ํ•จ์ˆ˜)

๋ฆฌ์•กํŠธ์—์„œ ๊ทธ๋ฆฌ๋“œ์˜ ๋ฐ์ดํ„ฐ์…‹์—์„œ ํŠน์ • ์นผ๋Ÿผ์˜ ํŠน์ • ๊ฐ’์„ ์ฐพ์•„์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ์žˆ์—ˆ๋‹ค. ์ด๋Ÿฐ ์ƒํ™ฉ์—์„œ xplatform์—์„œ๋Š” lookupํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค. var name = studentList.lookup("studentId",1,"studentNm"); studentId(ํ•™์ƒ๋ฒˆํ˜ธ)๊ฐ€ 1์ธ ํ•™์ƒ๋ช…์„ ์ฐพ์€ ์†Œ์Šค์ด๋‹ค. ๋ฆฌ์•กํŠธ์—์„œ๋Š” ์ด๋Ÿฐ ํ•จ์ˆ˜๊ฐ€ ๋ญ๊ฐ€ ์žˆ์„๊นŒ, ํ•˜๋‹ค๊ฐ€ findํ•จ์ˆ˜๋ฅผ findํ–ˆ๋‹ค. const list = studentList?.find((element) => element.studentId === 1); const name = list.studentNm; lookup๊ณผ ๋‹ค๋ฅด๊ฒŒ find๋Š” ํ•ด๋‹น row๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ค€๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ row์—์„œ studentNm์„ ๋‹ค์‹œ ์ฐพ์•„์ค˜์•ผ ํ•œ๋‹ค.

Programming/React 2022.07.19

[ React ] AG-GRID applyTransaction ํ–‰์ถ”๊ฐ€(add), ํ–‰์‚ญ์ œ(remove), ํ–‰์ˆ˜์ •(update) ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ

AG-GRID๋ฅผ ์ด์šฉํ•ด์„œ ๊ทธ๋ฆฌ๋“œ ํ–‰์ถ”๊ฐ€, ํ–‰์‚ญ์ œ, ํ–‰์ˆ˜์ • ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค. ๊ฒ€์ƒ‰์„ ํ•ด๋ณด๋‹ˆ๊นŒ ์ƒ๊ฐ๋ณด๋‹ค ์ž˜ ๋‚˜์™€์žˆ์ง€ ์•Š์•„์„œ ํฌ์ŠคํŒ…ํ•ด๋ณธ๋‹ค. import { GridApi } from 'ag-grid-community' ์ผ๋‹จ GridApi๋ฅผ import ํ•ด์ฃผ์—ˆ๋‹ค. ์›ํ•˜๋Š” applyTransaction ์ด ์—†๋‹ค.. ๋„๋Œ€์ฒด ์ด๊ฑด ์–ด๋–ป๊ฒŒ ์“ฐ๋Š” ๊ฑด๊ฐ€ ํ•˜๊ณ  ์†Œ์Šค๋ฅผ ๋’ค์ ธ๋ณด์•˜๋‹ค. const [gridApi, setGridApi] = useState(); useState๋กœ ์‚ฌ์šฉ์„ ํ•˜๋”๋ผ.. โž•ํ–‰ ์ถ”๊ฐ€ (add) const newRow = { JobNm: '', FromTm: '', ToTm: '', Use_YN: 'Y', Remark: '' }; gridApi?.applyTransaction({ add: [newRow..

Programming/React 2022.07.15

[ React ] ๊ทธ๋ฆฌ๋“œ์—์„œ ๊ฐ’ ํฌ๋งท ์ง€์ •ํ•ด์ฃผ๊ธฐ (AG GRID valueFormatter ์‚ฌ์šฉ)

https://www.ag-grid.com/javascript-data-grid/value-formatters/ JavaScript Data Grid: Value Formatters Value formatters allow you to format values for display. Download v28 of the best JavaScript Data Grid in the world now. www.ag-grid.com ์‹œ์ž‘์‹œ๊ฐ„ ์ข…๋ฃŒ์‹œ๊ฐ„ 0800 1700 ์ด๋Ÿฐ ๊ทธ๋ฆฌ๋“œ๊ฐ€ ์žˆ๋‹ค. ๋‘˜๋‹ค ์‹œ๊ฐ„์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ธธ ๋•Œ๋Š” 08:00, 17:00 ์œผ๋กœ ๋„˜๊ธฐ๊ณ  ์‹ถ๋‹ค. ํ•˜์ง€๋งŒ ์ž…๋ ฅํ•  ๋•Œ๋Š” ':' ์ฝœ๋ก ์„ ๊ตณ์ด ์ž…๋ ฅํ•˜๊ณ  ์‹ถ์ง„ ์•Š๋‹ค. => ๊ฐ’์˜ ํฌ๋งท ์ง€์ •ํ•ด์ฃผ๊ธฐ AG GRID์—๋Š” valueFormatter ๋ผ๋Š” ํฌ๋งท์ง€..

Programming/React 2022.07.15

[ React ] ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ๋ฆฌ์•กํŠธ ๊ฐœ๋ฐœํ™˜๊ฒฝ ์…‹ํŒ…

Node.js ์„ค์น˜ Node.js (nodejs.org) Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org Yarn ์„ค์น˜ Installation | Yarn (yarnpkg.com) Yarn Fast, reliable, and secure dependency management. classic.yarnpkg.com Visual Studio Code ์„ค์น˜ Visual Studio Code - Code Editing. Redefined Visual Studio Code - Code Editing. Redefined Visual Studio Code is a code editor redefined..

Programming/React 2022.07.14

[ React ] filter ํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ (ํ•„ํ„ฐ๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜)

Xplatform์—๋Š” filter ํ•จ์ˆ˜๋Š” ์ •๋ง ๋ง ๊ทธ๋Œ€๋กœ ํ•„ํ„ฐ๋ฅผ ๊ฑธ๊ณ , ํ•ด์ œํ•˜๋Š” ์—ญํ• ์„ ํ–ˆ์—ˆ๋‹ค. React์—์„œ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๋Š” ๊ฒŒ ์žˆ์„๊นŒ, ํ•˜๋ฉฐ ๊ฒ€์ƒ‰์„ ํ•ด๋ดค์ง€๋งŒ ์•„๋ฌด๋ฆฌ ์ฐพ์•„๋ด๋„ ์กฐ๊ธˆ ๋‹ค๋ฅธ filter ํ•จ์ˆ˜๋ฐ–์— ๋‚˜์˜ค์ง€ ์•Š์•˜๋‹ค.... ๋ญ ์–ด์ฉŒ๊ฒ ์–ด ์จ์•ผ์ง€. ๋‚ด๊ฐ€ ํ•„์š”ํ–ˆ๋˜ ๊ธฐ๋Šฅ์„ ๋‹ค๋ฅธ ๊ฒƒ์— ๋น„์œ ํ•ด์„œ ์ ์–ด ๋ณด์ž๋ฉด ํ•™์ƒ๋ณ„ ์„ฑ์ ๊ด€๋ฆฌ ํ™”๋ฉด์˜ ์กฐํšŒ์กฐ๊ฑด์— ํ•™๊ต / ํ•™๋…„ / ๋ฐ˜ / ํ•™์ƒ ์ฝค๋ณด๋ฐ•์Šค๊ฐ€ ์žˆ๋‹ค. ํ•™๊ต, ํ•™๋…„, ๋ฐ˜ ์ฝค๋ณด๋ฐ•์Šค๋ฅผ ํด๋ฆญํ•  ๋•Œ ๋งˆ๋‹ค ํ•™์ƒ ์ฝค๋ณด๋ฐ•์Šค ๊ฐ’์ด ๋‹ฌ๋ผ์ ธ์•ผ ํ•œ๋‹ค. ํ•™๊ต / ํ•™๋…„ / ๋ฐ˜ ์œผ๋กœ ํ•™์ƒ์„ ์กฐํšŒํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— submit์„ ๊ณ„์† ๋‚ ๋ฆฌ๋Š” ๊ฑด ์ข‹์ง€ ์•Š๋‹ค๊ณ  ๋А๊ผˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ•™์ƒ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ™”๋ฉด ์ผœ์งˆ ๋•Œ ๊ฐ€์ ธ์˜จ ํ›„์— ํ•„ํ„ฐ๋ฅผ ๊ณ„์† ๊ฑธ์–ด์„œ ๋ณด์—ฌ์ง€๋Š” ๋กœ์ง์„ ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  filter์€ ํ•ด์ œํ•  ์ˆ˜..

Programming/React 2022.07.07

[ React ] React Hook useEffect has a missing dependency warning ์•ˆ ๋œจ๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•

useEffect(() => { getCodeList(); }, []); React Hook useEffect has a missing dependency: 'getCodeList'. Either include it or remove the dependency array react-hooks/exhaustive-deps ์ด๋Ÿฐ warning์ด ๋œฌ๋‹ค. useEffect(() => { getCodeList(); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); ์ด๋ ‡๊ฒŒ ์ฃผ์„ ๋‹ฌ์•„์ฃผ๋ฉด warning์ด ๋œจ์ง€ ์•Š๋Š”๋‹ค.

Programming/React 2022.07.06

TypeScript ๋ฌผ์Œํ‘œ ๋‘ ๊ฐœ (??) Nullish Coalescing

https://boxfoxs.tistory.com/427 typescript 3.7 ์†Œ๊ฐœ ์ตœ๊ทผ ์ด์ง์„ ํ•œ ํ›„ ๊ฐœ์ธ์ ์œผ๋กœ '๊ณต๋ถ€' ๋ผ๋Š” ๊ฒƒ๊ณผ ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ€์–ด์ ธ์„œ ํฌ์ŠคํŒ…์„ ์“ฐ๋ฉด์„œ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์นจ ์ตœ๊ทผ์— typescript 3.7์ด ์ƒˆ๋กญ๊ฒŒ ๊ณต๊ฐœ๋ผ์„œ ํ•ด๋‹น ๋ฌธ์„œ๋ฅผ ๋ฒˆ์—ญํ•ด์„œ ๊ฐ„๋‹จํžˆ ์†Œ๊ฐœํ•ด boxfoxs.tistory.com userId ?? '' userId๊ฐ€ null์ด๋‚˜ undefined๋ผ๋ฉด ?? ์˜ค๋ฅธ์ชฝ ๊ฐ’์ด ๋ฐ˜ํ™˜๋œ๋‹ค๊ณ  ํ•œ๋‹ค. null์ด๋‚˜ undefined๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ๊ทธ๋Œ€๋กœ userId๊ฐ’์ด ๋ฐ˜ํ™˜๋˜๋Š” ๊ฒƒ.

[ React ] useState

์ถœ์ฒ˜ : https://react.vlpt.us/basic/07-useState.html https://react.vlpt.us/basic/09-multiple-inputs.html 9. ์—ฌ๋Ÿฌ๊ฐœ์˜ input ์ƒํƒœ ๊ด€๋ฆฌํ•˜๊ธฐ · GitBook 9. ์—ฌ๋Ÿฌ๊ฐœ์˜ input ์ƒํƒœ ๊ด€๋ฆฌํ•˜๊ธฐ ์ง€๋‚œ ํŠœํ† ๋ฆฌ์–ผ์—์„œ ์šฐ๋ฆฌ๋Š” input ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ณด์•˜๋Š”๋ฐ์š”, ์ด๋ฒˆ์—๋Š” input ์ด ์—ฌ๋Ÿฌ๊ฐœ์ผ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ์„  react.vlpt.us import React, { useState } from 'react'; ์ด ์ฝ”๋“œ๋Š” ๋ฆฌ์•กํŠธ ํŒจํ‚ค์ง€์—์„œ useState๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค. const [number, setNumber] = useState(0); const [์ƒํƒœ ๊ฐ’ ์ €์žฅ..

Programming/React 2022.06.21