λ°˜μ‘ν˜•

React 51

[React] window scroll event handler μ΄λ²€νŠΈκ°€ μ•ˆλ¨Ήνž λ•Œ, scrollY always 0

Introμ•ˆλ…•ν•˜μ„Έμš”. Reactμ—μ„œ window.scroll μ΄λ²€νŠΈκ°€ μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€ μ•Šμ€ μ—λŸ¬κ°€ λ°œμƒν•˜μ˜€μŠ΅λ‹ˆλ‹€. 아무리 window.scrollY 값을 ꡬ해도 0으둜 λ‚˜μ˜€λ”λΌκ³ μš”.   μ½”λ“œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. // stateconst [scrollTop, setScrollTop] = useState(0), headerRef = useRef(null), headerHeight = headerRef?.current?.clientHeight ?? 0, // useEffectuseEffect(() => { const handleScroll = () => { setScrollTop(window.scrollY); }; handleScroll(); window.ad..

Framework/React 2024.05.25

[React] useForm λΌμ΄λΈŒλŸ¬λ¦¬λž€?

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” React useForm λΌμ΄λΈŒλŸ¬λ¦¬μ— λŒ€ν•΄ κ°„λ‹¨νžˆ 정리해보렀고 ν•©λ‹ˆλ‹€. React mui ν…œν”Œλ¦Ώμ„ μ‚΄νŽ΄λ³΄λ˜ 도쀑 useForm 라이브러리λ₯Ό μ‚¬μš©ν•˜λŠ” 뢀뢄을 처음 λ°œκ²¬ν–ˆκ±°λ“ μš”! :) UseForm? useForm은 Reactμ—μ„œ Form 관리λ₯Ό κ°„νŽΈν•˜κ²Œ ν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” 라이브러리 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. React Hooksλ₯Ό 기반으둜 λ™μž‘ν•©λ‹ˆλ‹€. useForm을 μ‚¬μš©ν•˜λ©΄ μƒνƒœ 관리와 μœ νš¨μ„± 검사 λ“±μ˜ λ³΅μž‘ν•œ 폼 κ΄€λ ¨ μž‘μ—…μ„ κ°„μ†Œν™”ν•  수 μžˆμ–΄ κ°œλ°œμžλ“€μ΄ 폼을 더 λΉ λ₯΄κ³  μ‰½κ²Œ μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” 개발 생산성을 높이고 μ½”λ“œμ˜ μœ μ§€λ³΄μˆ˜μ„±μ„ ν–₯μƒμ‹œν‚΅λ‹ˆλ‹€. UseForm's function Form μƒνƒœ 관리 : useForm 훅을 μ‚¬μš©ν•˜μ—¬ 폼의 μƒνƒœλ₯Ό 관리할 수 μžˆμŠ΅λ‹ˆλ‹€..

Framework/React 2024.02.29

[React] Input elements should have autocomplete attributes (suggested: "current-password") Error ν•΄κ²° 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. Reactμ—μ„œ MUI의 TextFieldλ₯Ό μ‚¬μš©ν•˜λ˜ 도쀑 μ•„λž˜μ™€ 같은 μ—λŸ¬κ°€ λ°œμƒν•˜μ˜€μŠ΅λ‹ˆλ‹€. Input elements should have autocomplete attributes (suggested: "current-password") How to solve problem ν•΄λ‹Ή μ—λŸ¬κ°€ λ°œμƒν•œ μ΄μœ λŠ” autocomplete 속성을 λͺ…μ‹œν•˜μ§€ μ•Šμ•„μ„œμž…λ‹ˆλ‹€. autoComplete μ†μ„±μ΄λž€ 폼 ν•„λ“œμ— λΈŒλΌμš°μ €μ˜ μžλ™ μ™„μ„± κΈ°λŠ₯을 μ‚¬μš©ν• μ§€ μ—¬λΆ€λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. λΈŒλΌμš°μ €λŠ” μ’…μ’… μ‚¬μš©μžκ°€ 이전에 μž…λ ₯ν•œ 데이터λ₯Ό κΈ°μ–΅ν•˜κ³ , μœ μ‚¬ν•œ μž…λ ₯ ν•„λ“œκ°€ λ‚˜νƒ€λ‚  λ•Œ 이λ₯Ό μžλ™μœΌλ‘œ μ™„μ„±ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μ‚¬μš©μžκ°€ 이전에 μž…λ ₯ν•œ 이메일 μ£Όμ†Œλ‚˜ μ‚¬μš©μž 이름을 κΈ°μ–΅ν•˜μ—¬ λ‹€μŒμ— ν•΄λ‹Ή ν•„λ“œμ— λ‹€μ‹œ μž…λ ₯ν•  λ•Œ 브라..

Framework/React 2024.02.16

[Material UI] Dialog μ»΄ν¬λ„ŒνŠΈ ν™”μ‚΄ν‘œ ν‚€ (PgUp, PgDn) Internal scroll μΆ”κ°€ν•˜λŠ” 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” MUI Dialog Component μ—μ„œ ν™”μ‚΄ν‘œ ν‚€ (PgUp, PgDn) Internal scroll 을 μΆ”κ°€ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. Mui Dialog Component Open full-screen dialog Sound save MUI Full Dialog μ˜ˆμ‹œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. μœ„ μ½”λ“œ ν™œμš© μ‹œμ— 기본적으둜 ν™”μ‚΄ν‘œ λ°©ν–₯ν‚€ 슀크둀이 μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. PgUp, PgDn λ²„νŠΌλ„ λ§ˆμ°¬κ°€μ§€κ³ μš”. How to solve problem Modal title DialoContent νƒœκ·Έμ— tabIndex={0} 속성을 μΆ”κ°€ν•˜λ©΄ ν™”μ‚΄ν‚€ ν‘œλ₯Ό 톡해 up & down μŠ€ν¬λ‘€μ„ μ‹€ν–‰μ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€. PgUp, PgDn λ²„νŠΌλ„ 잘 μž‘λ™ν•˜κ³ μš”. Conclusion ..

Framework/React 2024.01.24

[React] React Hook "useSelector" cannot be called inside a callback μ—λŸ¬ 및 ν•΄κ²° 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. react hook useSelector λ₯Ό μ‚¬μš©ν•˜λ˜ 도쀑 μ•„λž˜μ˜ μ—λŸ¬κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. React Hook "useSelector" cannot be called inside a callback function YourComponent() { useEffect(() => { useSelector((state: RootState) => state.code[SOME_DATA]) }, []) } Why? react hook을 μ‚¬μš©ν•  λ•ŒλŠ” μ€‘μš”ν•œ 2가지 κ·œμΉ™μ΄ μžˆμŠ΅λ‹ˆλ‹€. 1️⃣ Only Call Hooks at the Top Level 루프 쑰건 λ˜λŠ” μ€‘μ²©λœ ν•¨μˆ˜ λ‚΄μ—μ„œ Hooksλ₯Ό ν˜ΈμΆœν•  수 μ—†μŠ΅λ‹ˆλ‹€. 항상 React ν•¨μˆ˜μ˜ Top Levelμ—μ„œ Hooksλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. 이 κ·œμΉ™μ„..

Framework/React 2023.09.18

[React.js] Warning: validateDOMNesting(...): <tr> cannot appear as a child of <table> μ—λŸ¬ ν•΄κ²° 방법

Introμ•ˆλ…•ν•˜μ„Έμš”. λ¦¬μ•‘νŠΈλ₯Ό μ‚¬μš©ν•˜λ˜ 도쀑 Warning: validateDOMNesting(...): cannot appear as a child of μ—λŸ¬κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. How to solve the problemμ½”λ“œλ₯Ό μ‚΄νŽ΄λ³΄λ‹ˆ tbody νƒœκ·Έκ°€ μ—†μ—ˆμŠ΅λ‹ˆλ‹€. μ•„λž˜μ˜ μ½”λ“œλ‘œ μˆ˜μ •ν•œ κ²°κ³Ό μ—λŸ¬κ°€ 더이상 λ°œμƒν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

Framework/React 2023.08.18

[React] react + typescript + Chart.js Multi-Axis μ„€μ •ν•˜λŠ” 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. μ•žμ„  ν¬μŠ€νŒ…μ—μ„œ Multi type chartλ₯Ό κ΅¬ν˜„ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ΄€λŠ”λ°μš”, 이번 μ‹œκ°„μ—λŠ” Chart.jsμ—μ„œ Multi-Axis λ₯Ό μ„€μ •ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. Multi-Axis 은 λ°μ΄ν„°μ˜ λ‹¨μœ„ 차이가 μ»€μ„œ ν•œκΊΌλ²ˆμ— ν‘œν˜„ν•  λ•Œ μœ μš©ν•©λ‹ˆλ‹€. How to do 제 경우 series1, series2 두 데이터에 μƒμ‘λ˜λŠ” y좕을 였λ₯Έμͺ½κ³Ό μ™Όμͺ½μ— ν‘œμ‹œν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€. 각각 μ‚¬μš©ν•˜κ³ μž ν•˜λŠ” 좕이 λ‹€λ₯΄κΈ° λ•Œλ¬Έμ— yAxisID 속성을 ν™œμš©ν•˜μ—¬ a, b λ‘κ°œλ₯Ό μ§€μ •ν–ˆμŠ΅λ‹ˆλ‹€. 이후 optionsμ—μ„œ ν•΄λ‹Ή yAxisIDλ₯Ό μ‚¬μš©ν•΄ position을 right, left둜 μ„€μ •ν•΄μ€¬μŠ΅λ‹ˆλ‹€. const series1: number[] = [] const series2: number[]..

Framework/React 2023.07.25

[React] react + typescript μ—μ„œ multitype λ©€ν‹°νƒ€μž… Chart.js μ‚¬μš©ν•˜λŠ” 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” react + typescript μ—μ„œ Chart.js λ₯Ό μ‚¬μš©ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. How to do 제 μΌ€μ΄μŠ€μ˜ 경우 λ§‰λŒ€(bar) κ·Έλž˜ν”„μ™€ μ„ (line) κ·Έλž˜ν”„λ₯Ό ν•¨κ»˜ κ·Έλ €μ£Όκ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό μœ„ν•΄ λ¨Όμ € MutiTypeChart μ»΄ν¬λ„ŒνŠΈλ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€. # MutiTypeChart Component props둜 data, height, options 을 μ •μ˜ν•©λ‹ˆλ‹€. λ©€ν‹°νƒ€μž… 차트λ₯Ό μœ„ν•΄μ„œλŠ” Chart Component λ₯Ό μ‚¬μš©ν•˜λ©΄ λ©λ‹ˆλ‹€. import React from 'react' import { BarController, BarElement, CategoryScale, Chart as ChartJS, ChartData, ChartOptions,..

Framework/React 2023.07.17

[Material UI] Typography variant μ»€μŠ€ν…€ ν•˜λŠ” 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” MUI Typography Component μ—μ„œ variant 속성을 μ»€μŠ€ν…€ ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. MUI Typography variant Typography 의 κΈ°λ³Έ variant 속성은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. h1, h2, h3, h4, h5, h6, subtitle1, subtitle2, body1, body2 κ°€ μžˆμŠ΅λ‹ˆλ‹€. 이 외에도 직접 μ»€μŠ€ν…€ν•˜μ—¬ variantλ₯Ό μΆ”κ°€ν•˜κ³  싢을 λ•Œκ°€ μžˆμ„ κ²λ‹ˆλ‹€. const theme = createTheme({ components: { MuiTypography: { defaultProps: { variantMapping: { h1: 'h2', h2: 'h2', h3: 'h2', h4: 'h2', h5: 'h2', ..

Framework/React 2023.07.10

[Material UI] Dialog background color λ°”κΎΈλŠ” 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” MUI의 Dialog μ—μ„œ background color λ₯Ό λ°”κΎΈλŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. How to do {/* ... your content ... */} μœ„μ™€ 같이 PaperPorps 속성을 μ‚¬μš©ν•˜μ—¬ backgroundColorλ₯Ό 지정해쀄 수 μžˆμŠ΅λ‹ˆλ‹€. https://stackoverflow.com/questions/41158325/how-to-create-material-ui-dialog-with-transparent-background-color

Framework/React 2023.07.10
λ°˜μ‘ν˜•