์๋ฌ ๋ฐ์react-router-dom๋ฅผ ์ฌ์ฉํ๋ ์ฝ๋์ playwright ํ ์คํธ ์ค ์๋์ ๊ฐ์ด useNavigate ๊ด๋ จ ์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋จ์ ํด๊ฒฐuseNavigate๋ react-router-dom ์ ํ ์ผ๋ก ์์นญํด๋ณด๋ MemoryRouter ๋ก ๊ฐ์ธ์ฃผ๋ฉด ๋๋ค๊ณ ํฉ๋๋ค. const component = await mount( , { hooksConfig } ); ์ด๋ ๊ฒ mount ์์ ๋จ์ํ ๊ฐ์ธ๋ ์์ผ๋ก ํด๊ฒฐํ ์๋ ์๊ฒ ์ง๋ง, ์ด ๋ถ๋ถ์ ๊ณตํตํ ํ ์ ์์ต๋๋ค. ๊ณตํตํ ์๋ 1import { MemoryRouter } from 'react-router-dom';import { AuthContext } from '@contexts';export const TE..
์ค๋์ Next JS์์ Client Data fetching ์ฌ์ฉ ์ ๋ง์ฃผํ ์ ์๋ Anchoring ์ด์์ ๋ํด ์ ๋ฆฌํ๋ ค ํฉ๋๋ค. Next JS docs์์ ๊ถ์ฅํ๊ณ ์๋ ์ฝ๋ ์คํ์ผ์ ์ ์ฉํ์ ๋ ์๊ธธ ์ ์๋ ์ด์์ด๊ธฐ ๋๋ฌธ์, ๊ด๋ จ ์ด์๊ฐ ์๊ฒผ์ ๋ ์ ๋ ๋๋ฒ๊น ์ ์๊ฐ์ ๊ฝค๋ ์ผ์ต๋๋ค. ๋จผ์ Next JS์ Data fetching์ ๋ํ ์ง์์ด ์ ๋ฌดํ ๋ถ๋ค์ ์ํด ๊ฐ๋ ๋ถํฐ ์ ๋ฆฌํ๊ณ ์ด์์ ๋ํ ํด๊ฒฐ ๊ณผ์ ์ ์ฐจ๋ก๋ก ์ ์ด๋ณด๊ฒ ์ต๋๋ค. Data fetching Next JS๋ฅผ ์ด์ฉํ Data fetching์๋ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํด์ฃผ์ธ์! getStaticProps / getServerSideProps : Server Side์์ ๋ฏธ๋ฆฌ page h..
React array state๊ฐ ๊ฐฑ์ ๋์ด๋ view๊ฐ ๋ฐ๋์ง ์์ ๋ const [members, setMembers] = useState([]); const deleteMember = (index: number) => { // member ์ญ์ const tmp = members; tmp.splice(index, 1); setMembers(tmp); } return( { members.map((member: string, index: number) => {member} } ); members๋ผ๋ Array state์ ๊ฐ ํ๋๋ฅผ ์ญ์ ํ๋ ํจ์์ด๋ค. ํด๋น ํจ์๋ฅผ ์คํํด๋ ํ์๋๋ ํ์์ด ๋ณํ์ง ์๋ ์ด์๊ฐ ๋ฐ์ํ๋ค. ํ์ง๋ง ๊ฐ๋ฐ์๋๊ตฌ๋ฅผ ํตํด์ ๋ณด๋ฉด ๋ถ๋ช ํด๋น ์ปดํฌ๋ํธ์ members State๋ ๋ณ๊ฒฝ๋..
ํ๋ก ํธ์์ 2๊ฐ์ง ํธ์ถ api๋ฅผ ๊ฐ์ ํจ์์ ๋๊ณ ๋์์ ํธ์ถํ์๋๋, ์๋ฒ์์ ๋ท ์์๋ก ํธ์ถ๋ api ์คํ ์ No database selecte error ๊ฐ ๋๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ : gorm.DB์ ์๋ sql.DB์ SetMaxOpenConns ํจ์๋ฅผ ์ด์ฉํ์ฌ, ๋์์ ํ์ฉ ๊ฐ๋ฅํ ์ต๋ ์ปค๋ฅ์ ๊ฐ์๋ฅผ ์ ํํด์ฃผ์ด์ผํ๋ค. Config.DB, err = gorm.Open(mysql.Open(Config.DBURL(Config.BuildDBConfig())), &gorm.Config{}) if err != nil { fmt.Println("Status: ", err) return } // ์๋์ ์ฝ๋๋ฅผ ์ถ๊ฐํด์ค๋ค. db, err := Config.DB.DB() if err != nil { fmt.Print..
์ฌ์ฉํ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค. { 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์ 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 JSX์์ array๋ dictionary๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด forEach ๋ฌธ์ ์ผ๋ค๋ฉด, map์ผ๋ก ๋ณ๊ฒฝํด์ผํ๋ค. map ํจ์๋ ์ฐ์ฐ ํ์ ์์ฑ๋ ๊ฒฐ๊ณผ array / dictionary๋ฅผ ๋ฐํํด์ฃผ๊ธฐ ๋๋ฌธ์ JSX์์ ๋ํ๋๊ฒ ๋์ง๋ง, forEach๋ฌธ์ ๋ณ์์๋ง ์ฐ์ฐ ๊ฒฐ๊ณผ๊ฐ ์ ์ฉ๋๊ณ ๋ฐํํด์ฃผ์ง ์๋๋ค. ๋ฐ๋ผ์, forEach ๋ฌธ์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ฐ์ฐ๋ง ๋๊ณ ๊ฒฐ๊ณผ๋ JSX๋ก ์ถ๋ ฅ๋์ง ์๋๋ค.
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..
Comment