You can not change the default `anchorOrigin.vertical` value ์˜ค๋ฅ˜
์›น (WEB)/์—๋Ÿฌํ•ด๊ฒฐ 2021. 2. 3. 18:50

์‚ฌ์šฉํ•œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. { colorArr.map(...) } ํ•ด๋‹น ์ฝ”๋“œ๋Š” ์ •์ƒ๋™์ž‘ํ•˜์ง€๋งŒ, ํ‘œ์‹œ๋œ getContentAnchorEl์„ ์†์„ฑ์œผ๋กœ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋œฌ๋‹ค. Material-UI: You can not change the default `anchorOrigin.vertical` value when also providing the `getContentAnchorEl` prop to the popover component. Only use one of the two props. Set `getContentAnchorEl` to `null | undefined` or leave `anchorOrigin.vertical` unchanged. material-ui์˜ popove..

[React hook] html ์š”์†Œ๋ฅผ ์ด๋ฏธ์ง€๋กœ ์ €์žฅํ•˜๊ณ , ์ด๋ฏธ์ง€ ํ˜ธ์ŠคํŒ…ํ•˜์—ฌ ์นด์นด์˜คํ†ก api๋กœ ๊ณต์œ ํ•˜๊ธฐ :: html2canvas, imgur, kakao api
์›น (WEB)/๊ณต๋ถ€ 2021. 1. 30. 00:27

html2canvas + ์ด๋ฏธ์ง€ ํ˜ธ์ŠคํŒ… *์˜ˆ์ œ๋Š” React Hook ํ™˜๊ฒฝ์—์„œ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ table์„ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค์–ด ๊ณต์œ ํ•ด์•ผํ•˜๋Š” ์š”๊ตฌ์‚ฌํ•ญ์ด ์žˆ์—ˆ๋‹ค. ์š”๊ตฌ์‚ฌํ•ญ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ œ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ํ•ด๋‚ด์•ผํ•œ๋‹ค. html table์„ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค๊ธฐ ๋งŒ๋“ค์–ด์ง„ ์ด๋ฏธ์ง€๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๊ธฐ ํ˜ธ์ŠคํŒ…๋œ ์ด๋ฏธ์ง€๋ฅผ ์นด์นด์˜คํ†ก api๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ณต์œ ํ•˜๊ธฐ ์ฐจ๋ก€๋Œ€๋กœ ํ•ด๋ณด์ž. html table์„ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค๊ธฐ DOM์š”์†Œ๋ฅผ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค ๋•Œ, html2canvas๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ฃผ๋กœ ์“ฐ์ธ๋‹ค. import html2canvas from 'html2canvas'; const copyDOM = async () => { window.scrollTo(0, 0); let url = ""; await html2canvas(..

[React] React hook + Material UI error :: findDOMNode is deprecated in StrictMode.
์›น (WEB)/์—๋Ÿฌํ•ด๊ฒฐ 2020. 12. 20. 21:08

React์™€ Material UI๋ผ๋Š” React UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋˜ ์ค‘, ์ œ๋ชฉ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. findDOMNode is deprecated in StrictMode. KOS ํ”„๋กœ์ ํŠธ์—์„œ๋„ ๋ฐœ๊ฒฌํ–ˆ๋˜ ์˜ค๋ฅœ๋ฐ ๋Œ€์ˆ˜๋กญ์ง€ ์•Š๊ฒŒ ๋„˜๊ฒผ๋”๋‹ˆ ์—ฌ๊ธฐ์„œ ๊ฑธ๋ฆฌ์ ๊ฑฐ๋ฆฌ๋Š”๊ตฐ ใ… ใ…  ์–ด์จŒ๋“  ํ•ด๊ฒฐํ•ด๋ณด์ž. ์ด์œ  ์ €๋Ÿฐ ์˜ค๋ฅ˜๊ฐ€ ๋œจ๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ? ๋จผ์ €, create-react-app์„ ํ†ตํ•ด React ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด, index.js๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒ๊ฒผ๋‹ค. import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; import reportWebVitals from './reportWebVitals'; ReactDOM..

[React] React JSX์—์„œ forEach ์•ˆ๋  ๋•Œ
์›น (WEB)/์—๋Ÿฌํ•ด๊ฒฐ 2020. 12. 20. 21:06

React JSX์—์„œ array๋‚˜ dictionary๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด forEach ๋ฌธ์„ ์ผ๋‹ค๋ฉด, map์œผ๋กœ ๋ณ€๊ฒฝํ•ด์•ผํ•œ๋‹ค. map ํ•จ์ˆ˜๋Š” ์—ฐ์‚ฐ ํ›„์— ์ƒ์„ฑ๋œ ๊ฒฐ๊ณผ array / dictionary๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— JSX์—์„œ ๋‚˜ํƒ€๋‚˜๊ฒŒ ๋˜์ง€๋งŒ, forEach๋ฌธ์€ ๋ณ€์ˆ˜์—๋งŒ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๊ฐ€ ์ ์šฉ๋˜๊ณ  ๋ฐ˜ํ™˜ํ•ด์ฃผ์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ, forEach ๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์—ฐ์‚ฐ๋งŒ ๋˜๊ณ  ๊ฒฐ๊ณผ๋Š” JSX๋กœ ์ถœ๋ ฅ๋˜์ง€ ์•Š๋Š”๋‹ค.

[ESLint] React hook + Typescript ํ”„๋กœ์ ํŠธ ์‹œ ์„ค์ •ํ•œ rule ๊ณต์œ 
์›น (WEB)/๊ณต๋ถ€ 2020. 12. 14. 14:01

module.exports = { 'parser': '@typescript-eslint/parser', 'plugins': ['@typescript-eslint'], 'env': { 'commonjs': true, 'browser': true, 'es2021': true, 'node' : true }, 'extends': [ 'airbnb', 'airbnb/hooks', 'plugin:@typescript-eslint/recommended' ], 'parserOptions': { 'project': './tsconfig.json', 'ecmaFeatures': { 'jsx': true, }, 'ecmaVersion': 12, 'sourceType': 'module', }, 'rules': { 'inden..

[Typescript] ๊ธฐ์กด React + js ํ”„๋กœ์ ํŠธ ts๋กœ ๋ฐ”๊พธ๊ธฐ
์›น (WEB)/๊ณต๋ถ€ 2020. 12. 14. 13:58

Typescript ์ฐธ๊ณ  : https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html (Typescript ๊ณต์‹ ์‚ฌ์ดํŠธ) ๋ฐฐ์šฐ๋Š” ์ด์œ  JS์—์„œ๋Š” Type์ด ๊ณ„์† ์ฒดํฌ๋˜์ง€ ์•Š๋Š”๋‹ค. 1. ์ด๋Š” ์•”๋ฌต์  ํ˜•๋ณ€ํ™˜, hoisting, ๋ณต์žก์„ฑ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ฝ”๋“œ ์ƒ์˜ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ฒ„๊ทธ๋ฅผ ์—†์• ๊ธฐ ์œ„ํ•ด typescript๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. hoisting : ๋Œ์–ด์˜ฌ๋ฆฐ๋‹ค๋Š” ๋œป. javascript์—์„œ ์„ ์–ธ๋ฌธ์„ ๋Œ์–ด์˜ฌ๋ ค ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉํ•  ๋•Œ ์ˆœ์„œ์— ์ƒ๊ด€์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๋Š” ๊ธฐ์ˆ . typescript๋Š” ๋ณต์žกํ•œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ์ฝ”๋“œ ์—†์ด ์ด๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. 2. ํ˜‘์—… ์‹œ์—๋‚˜ ์ถ”ํ›„์— ๋ณธ์ธ์ด ์ง  ์ฝ”๋“œ๋ฅผ ๋ณด์•˜์„ ๋•Œ ํƒ€์ž…์ด ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ํ•˜๋‚˜..

[Typescript] TS2691: import .ts file
์›น (WEB)/์—๋Ÿฌํ•ด๊ฒฐ 2020. 12. 14. 13:58

TS2691: import .ts file ์ฐธ๊ณ  : https://github.com/microsoft/TypeScript/issues/37582 https://github.com/microsoft/TypeScript/issues/27481 https://github.com/microsoft/TypeScript/issues/39965 ์ด ์˜ค๋ฅ˜๋Š” typescript ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์–ด์„œ ๋‚˜๋Š” ์˜ค๋ฅ˜์ด๋‹ค. import A from 'A.tsx'; ์œ„์™€ ๊ฐ™์ด ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ค๋ฉด, import ์ „์— ts / tsx ํŒŒ์ผ์ด js / jsx ๋กœ ๋ณ€ํ™˜๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋Š” ์—๋Ÿฌ๊ฐ€ ๋œฌ๋‹ค. ๋”ฐ๋ผ์„œ, ๋‹จ์ˆœํžˆ ํ™•์žฅ์ž๋ฅผ ๋ถ™์ด์ง€ ์•Š๊ณ  import ํ•ด์˜ค๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ธ๋ฐ ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด esl..

[React] React MVVM ๊ตฌ์กฐ MobX / Redux ์—†์ด ๊ตฌํ˜„ํ•˜๊ธฐ (Feat. Context API)
์›น (WEB)/๊ณต๋ถ€ 2020. 12. 8. 14:57

[2021-03-04 ์ตœ์ข… ์ˆ˜์ •] ๋ฐœ๋‹จ KOS ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘์— ์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Redux, Mobx)๋ฅผ ์ถ”ํ›„ ๋„์ž…ํ•˜๊ธฐ๋กœ ํ•˜๊ณ , ๋จผ์ € MVVM ํŒจํ„ด๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค. ํ•˜์ง€๋งŒ ๊ธฐ์กด์— ๋‚˜์™€์žˆ๋Š” ํด๋” ๊ตฌ์กฐ๋“ค์€ ๋ชจ๋‘ react์™€ Redux / Mobx ๋ฅผ ์—ฐ๋™ํ•˜์—ฌ ๋งŒ๋“ค์–ด๋‚ธ ๊ตฌ์กฐ๋“ค์ด์—ˆ๋‹ค. ๋‹ค์Œ์€ ์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  MVVM ํŒจํ„ด์„ ๊ตฌํ˜„ํ•œ ์‚ฌ์ดํŠธ์ด๋‹ค. https://github.com/davinci2015/react-mvvm-pokemon ( Class ์ด์šฉ ) https://velog.io/@dlrmsghks7/whatismvvmpattern ( Hook ์ด์šฉ ) ์œ„์˜ ์‚ฌ์ดํŠธ๋“ค์—์„œ ์ œ์•ˆํ•œ ๊ตฌ์กฐ๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ณด์ž. View, View Controller, View Model, Model..