묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
run_test_hello_channel.py 실행 no module named 'channel_redis' 오류 발생
m1 mac에서 강의를 듣고있습니다.env에서 channel_layer_redis 값을 파싱하는 것까지는 잘 따라왔는데run_test_hello_channel.py 에서 해당 오류가 발생하네요강사님 github에 있는 코드 그대로 복사해서 붙였는데도 오류가 나서 어디서부터 해결해야 할 지 모르겠습니다!도와주세요 ㅜㅜimport asyncioimport osimport djangofrom channels.layers import get_channel_layeros.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings"django.setup()async def main(): channel_layer = get_channel_layer() message_dict = {'content': 'world'} await channel_layer.send('hello', message_dict) response_dict = await channel_layer.receive('hello') is_equal = message_dict == response_dict print("송신/수신 데이터가 같습니까?", is_equal)asyncio.run(main()) 터미널 결과는 다음과 같습니다. (webchat) tk_mac@itaegyeong-ui-MacBookAir webchat % python run_test_hello_channel.pyTraceback (most recent call last): File "/Users/tk_mac/opt/anaconda3/envs/webchat/lib/python3.10/site-packages/channels/layers.py", line 65, in makebackend backend_class = import_string(self.configs[name]["BACKEND"]) File "/Users/tk_mac/opt/anaconda3/envs/webchat/lib/python3.10/site-packages/django/utils/module_loading.py", line 30, in import_string return cached_import(module_path, class_name) File "/Users/tk_mac/opt/anaconda3/envs/webchat/lib/python3.10/site-packages/django/utils/module_loading.py", line 15, in cached_import module = import_module(module_path) File "/Users/tk_mac/opt/anaconda3/envs/webchat/lib/python3.10/importlib/__init__.py", line 126, in import_module return bootstrap.gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in gcdimport File "<frozen importlib._bootstrap>", line 1027, in findand_load File "<frozen importlib._bootstrap>", line 992, in findand_load_unlocked File "<frozen importlib._bootstrap>", line 241, in callwith_frames_removed File "<frozen importlib._bootstrap>", line 1050, in gcdimport File "<frozen importlib._bootstrap>", line 1027, in findand_load File "<frozen importlib._bootstrap>", line 1004, in findand_load_unlockedModuleNotFoundError: No module named 'channel_redis' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/tk_mac/github/webchat/run_test_hello_channel.py", line 22, in <module> asyncio.run(main()) File "/Users/tk_mac/opt/anaconda3/envs/webchat/lib/python3.10/asyncio/runners.py", line 44, in run return loop.run_until_complete(main) File "/Users/tk_mac/opt/anaconda3/envs/webchat/lib/python3.10/asyncio/base_events.py", line 646, in run_until_complete return future.result() File "/Users/tk_mac/github/webchat/run_test_hello_channel.py", line 12, in main channel_layer = get_channel_layer() File "/Users/tk_mac/opt/anaconda3/envs/webchat/lib/python3.10/site-packages/channels/layers.py", line 357, in get_channel_layer return channel_layers[alias] File "/Users/tk_mac/opt/anaconda3/envs/webchat/lib/python3.10/site-packages/channels/layers.py", line 78, in getitem self.backends[key] = self.make_backend(key) File "/Users/tk_mac/opt/anaconda3/envs/webchat/lib/python3.10/site-packages/channels/layers.py", line 44, in make_backend return self._make_backend(name, config) File "/Users/tk_mac/opt/anaconda3/envs/webchat/lib/python3.10/site-packages/channels/layers.py", line 69, in makebackend raise InvalidChannelLayerError(channels.exceptions.InvalidChannelLayerError: Cannot import BACKEND 'channel_redis.core.RedisChannelLayer' specified for default
-
미해결파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
채팅방 삭제 관련 오류가 뭐때문인지 모르겠습니다..
안녕하세요새 프로젝트를 만들어서 강사님 강의대로 구현했을 때에는 에러가 뜨지 않았는데요제가 하던 간단한 프로젝트에서 채팅기능 추가하려고 하니까, 에러가 나네요.. 강의 동영상 7분전까지는 오류없이 채팅방 삭제가 잘 되었는데요. 8분쯤 나오는 채팅방 삭제에 따른 웹소켓 연결 끊기 부분에서 잘못된것 같습니다.채팅방을 만든 상태에서 채팅방을 삭제하면WebSocket DISCONNECT /ws/chat/11/chat/ [127.0.0.1:54878] Task exception was never retrieved future: <Task finished name='Task-335' coro=<Connection.disconnect() done, defined at /Users/hugo/Desktop/venv/chaegbang/lib/python3.10/site-packages/redis/asyncio/connection.py:723> exception=RuntimeError("Task <Task pending name='Task-335' coro=<Connection.disconnect() running at /Users/hugo/Desktop/venv/chaegbang/lib/python3.10/site-packages/redis/asyncio/connection.py:736>> got Future <Future pending> attached to a different loop")> Traceback (most recent call last): File "/Users/hugo/Desktop/venv/chaegbang/lib/python3.10/site-packages/redis/asyncio/connection.py", line 736, in disconnect await self._writer.wait_closed() # type: ignore[union-attr] File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/streams.py", line 344, in wait_closed await self._protocol._get_close_waiter(self) RuntimeError: Task <Task pending name='Task-335' coro=<Connection.disconnect() running at /Users/hugo/Desktop/venv/chaegbang/lib/python3.10/site-packages/redis/asyncio/connection.py:736>> got Future <Future pending> attached to a different loop Task exception was never retrieved future: <Task finished name='Task-336' coro=<Connection.disconnect() done, defined at /Users/hugo/Desktop/venv/chaegbang/lib/python3.10/site-packages/redis/asyncio/connection.py:723> exception=RuntimeError("Task <Task pending name='Task-336' coro=<Connection.disconnect() running at /Users/hugo/Desktop/venv/chaegbang/lib/python3.10/site-packages/redis/asyncio/connection.py:736>> got Future <Future pending> attached to a different loop")> Traceback (most recent call last): File "/Users/hugo/Desktop/venv/chaegbang/lib/python3.10/site-packages/redis/asyncio/connection.py", line 736, in disconnect await self._writer.wait_closed() # type: ignore[union-attr] File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/streams.py", line 344, in wait_closed await self._protocol._get_close_waiter(self) RuntimeError: Task <Task pending name='Task-336' coro=<Connection.disconnect() running at /Users/hugo/Desktop/venv/chaegbang/lib/python3.10/site-packages/redis/asyncio/connection.py:736>> got Future <Future pending> attached to a different loop이렇게 나옵니다. 검색해도 잘 모르겠습니다...새로운 프로젝트만들어서 했을 때에는 이런 오류가 안떴는데 패키지 버전문제일까요??
-
미해결장고 설계철학으로 시작하는 파이썬 장고 입문
장고 가상환경 실행 오류
venv\Scripts 탭 이후, activate 명령 했는데, 가상환경 실행이 되지 않습니다.
-
미해결장고 설계철학으로 시작하는 파이썬 장고 입문
폰트 설치에러(2)
scoop install sudo는 성공적으로 설치 되었습니다!scoop install nerd-fonts/FiraCode-NF-Mono 뒤에 sudo를 붙여 해봤더니 에러가 떠요. ㅠㅠ 혹시 말씀하신 코드를 구체적으로 여쭤볼 수 있을까요??추가적으로 pyenv 3.10.4 버전 설치시 에러가 발생했어요..답변 부탁드립니다!
-
미해결장고 설계철학으로 시작하는 파이썬 장고 입문
폰트 설치 에러
scoop install nerd-fonts/firacode-nf-monoscoop install nerd-fonts/cascadiacode-nf-mono설치 과정중 위 화면과 갗은 에러가 발생 했습니다. 해결 방법을 찾고 싶어 글 남깁니다.
-
미해결<M.B.I.T> 테스트 페이지 만들기! with Django
결과 페이지 만들기 -js편 execCommand를 더이상 지원하지 않습니다.
프론트엔드 마지막편을 보고 있는데 더이상 execCommand 명령어를 지원하지 않는다고 하여 다른 명령어를 찾아봤는데 옳은 코드 인가요?현재 url을 복사하는 함수를 작성한 것입니다.function copyUrl(){ let url = window.location.href; navigator.clipboard.writeText(url) .then(()=>{ alert('URL을 클립보드에 복사했습니다.'); }); }
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
suggestion에서 onFollowUser을 수행할때 에러 질문입니다!
import React from "react"; import { Button, Avatar } from "antd"; import "./Suggestion.scss"; //프레젠테이션 컴포넌트라 할 수 있다 export default function Suggestion({ suggestionUser, onFollowUser }) { const { username, avatar, is_follow } = suggestionUser; return ( <div className="suggestion"> <div className="avatar"> <Avatar icon={<img src={avatar} alt={`${username}'s avatar`} />} /> {/* <UserAddOutlined /> */} </div> <div className="usesrname">{username}</div> <div className="action"> {is_follow && "팔로잉 중"} {!is_follow && ( <Button size="small" onClick={() => onFollowUser(username)}> Follow </Button> )} </div> </div> ); } import React, { useEffect, useState } from "react"; import "./SuggestionList.scss"; import { Card } from "antd"; import Suggestion from "./Suggestion"; import { useAppContext } from "store"; import Axios from "axios"; import useAxios from "axios-hooks"; export default function SuggestionList({ style }) { const { store: { jwtAccessToken }, } = useAppContext(); const [userList, setUserList] = useState([]); //axios을 좀더 일반적으로 쓰기위한 훅을 이용 useAxios hook //useEffect자체가 필요없다 요청자체를 useAxios가 보내게 되니까? //useAxios는 조회를 할때는 유용한다 post을 할때는 코드가 복잡해진다? const headers = { Authorization: `Bearer ${jwtAccessToken}` }; const [{ data: origUserList, loading, error }, refetch] = useAxios({ url: "http://127.0.0.1:8000/accounts/suggestions/", headers, }); useEffect(() => { if (!origUserList) setUserList([]); else setUserList(origUserList.map((user) => ({ ...user, if_follow: false }))); }, [origUserList]); const onFollowUser = (username) => { console.log("성공"); try { Axios.post( "http://127.0.0.1:8000/accounts/follow/", { username }, { headers } ) .then((response) => { setUserList((prevUserList) => { return prevUserList.map((user) => { if (user.username === username) { return { ...user, is_follow: true }; } else return user; }); }); }) .catch((error) => { console.log(error); }); } catch (error) { console.log("여기 에러야 :", error); } }; return ( <div style={style}> {/* 정말 빠르게 지나갈 것이다 */} {loading && <div>Loading...</div>} {error && <div>로딩중에 에러가 발생했습니다.</div>} {/* <button onClick={() => refetch()}>Reload</button> */} <Card size="small" title="Suggestions for you" // extra={<a href="#">More</a>} style={{ width: 300, }} > {userList.map((suggestionUser) => ( <Suggestion key={suggestionUser.username} suggestionUser={suggestionUser} onFollowUser={onFollowUser} //속성값으로 주입함 /> ))} </Card> </div> ); } 첫번째 블럭이 Suggestion.js이고 두번째 블럭은 SuggestionList.js입니다.follow 버튼을 눌렀을때 이러한 에러가 뜨기 시작했는데 왜 그런걸까요ㅠㅠ 분명 원래는 잘 되었는데 학습진도를 더 나가다 보니 어느순간 작동하지 않던데 그 이유를 잘 모르겠습니다 서버쪽으로 요청도 가지 않는거 같은데 서버쪽의 문제일 수 있을까요??
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
도커 환경에서 협업 하려면 어떻게 해야 하나요?
안녕하세요 강사님 덕분에 질 좋은 강의를 접할 수 있어 감사드립니다.도커 내부에서 개발을 진행한 후 저장 하면서 개발 내용을 이어서 작업하려면 어떻게 해야 하나요?도커 허브에 올려둔 뒤 커밋, 푸쉬 하는 방법을 사용 해야 하나요?아니면, 내부에서 수정한 컨테이너를 다시 빌드 하는 방법이 있나요? 로컬 환경에서 작업한 후 도커 컨테이너를 빌드 해야 하나요?강사님께 장고를 배우면서 도커 환경에서 개발하며 배포하고 싶은데 구글링을 해봐도 감이 잘 안잡혀서 질문 남깁니다.
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
gunicorn으로 동작시 'latin-1' 에러 발생
안녕하세요 개발을 진행하던 중 오류를 겪고 있어서 한가지 여쭤보려고 합니다.제가 wsgi를 gunicorn으로 서버를 돌리려고 하는데, python manage.py runserver 명령어로 서버를 돌릴때는 에러를 겪지 않고 기능들이 정상작동 되는것을 확인 하였습니다.하지만, gunicorn으로 서버를 돌리는 경우'latin-1' codec can't encode characters in position 55-56: ordinal not in range(256)해당 에러를 겪고 있습니다. (서칭해본 결과 gunicorn은 문자 인코딩을 latin-1로 설정 되어있다고 해서 환경변수를 바꿔주려고 시도를 해보았으나 실패하였습니다. gunicorn --env LANG=en_US.UTF-8 tutorial.wsgi.local:application)현재 settings, wsgi를 분리해 놓은 상태입니다.wsgi/local.pyimport os import sys import importlib from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tutorial.settings.local') application = get_wsgi_application()settings/local.pyimport os from .base import * DEBUG = True ALLOWED_HOSTS = ['*'] DEFAULT_CHARSET='utf-8' WSGI_APPLICATION = 'tutorial.wsgi.local.application' DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR , 'db.sqlite3'), }, } 지금 에러를 겪는 기능은 회원가입 기능이며 serealizer.save()에서 에러를 겪는 다고 생각도 듭니다.(전화번호 필드만 양방향 암호화를 설정하였습니다. 암호화, 복호화가능하게) 그러나 runserver후 에는 정상작동이 되기때문에 정확한 원인파악이 어렵습니다. (다른 분들 블로그를 확인하면 gunicorn을 설치하고 따로 설정한게 없이 정상작동 되는거 같습니다.)gunicorn으로 서버를 돌리는 경우gunicorn --env LANG=en_US.UTF-8 tutorial.wsgi.local:application --bind 0:8080gunicorn --bind 0:8080 tutorial.wsgi.local:application2가지 명령어로도 실행 해보았으나 동일한 에러를 보여주고 있습니다.회원가입 api로 요청시header response allow: POST,OPTIONS connection: close content-length: 96 content-type: application/json date: Mon,27 Feb 2023 05:54:52 GMT referrer-policy: same-origin server: gunicorn vary: Accept,Cookie x-content-type-options: nosniff x-frame-options: DENY body response'latin-1' codec can't encode characters in position 55-56: ordinal not in range(256)도움을 주신다면 감사하겠습니다.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
ipython, jupyter notebook 오류 질문 드립니다 ㅠㅠ
안녕하세요수업을 진행 하던 중 ipython과 jupyter notebook에서 오류가 발생하고 있습니다.이유가 무엇일까요? django를 설치 했는데도 오류가 발생합니다 도와주세요~~
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
로그인 폼을 만들고 로컬 스토리지에 jwt저장하기 강의에서 질문입니다!
import React, { useState } from "react"; import { Card, Button, Form, Input, notification } from "antd"; import { useHistory } from "react-router-dom"; import Axios from "axios"; import { SmileOutlined, FrownOutlined } from "@ant-design/icons"; import useLocalStorage from "utils/useLocalStorage"; export default function Login() { const history = useHistory(); const [jwtAccessToken, setJwtAccessToken] = useLocalStorage( "jwtAccessToken", "" ); console.log("loaded Token: ", jwtAccessToken); // 왜 이게 두번이나 출력되는 것이지? const onFinish = (values) => { async function fn() { const { username, password } = values; const data = { username, password }; try { //응답을 꼭 받아야 한다. 토큰을 받아야 하니까 const response = await Axios.post( "http://127.0.0.1:8000/accounts/token/", data, { headers: { "Content-Type": "application/json" } } ); // const { data: token } = response; 이런 방식은 아래랑 다르다 response에서 data을 꺼내서 이름을 token이라 짓는 것 // const token = response.data 와 일치하며 밑에 녀석은 // const jwtAccessToken = response.data.access 과 일치한다 const { data: { access: jwtAccessToken }, } = response; setJwtAccessToken(jwtAccessToken); notification.open({ message: "로그인 성공!", icon: <SmileOutlined style={{ color: "#108ee9" }} />, }); // history.push("/accounts/login"); //TODO: 이동주소 } catch (error) { console.log(error); if (error.response) { notification.open({ message: "로그인 실패!", icon: <FrownOutlined style={{ color: "#ff3333" }} />, description: "아이디/암호를 확인해 주세요.", onClick: () => { console.log("Notification Clicked!"); }, }); } } } fn(); }; return ( <Card title="login"> <Form labelCol={{ span: 8 }} //부트스트랩은 한 행이 12 컬럼인데 antd는 24컬럼임 wrapperCol={{ span: 16 }} style={{ maxWidth: 600 }} onFinish={onFinish} autoComplete="off" > <Form.Item label="Username" name="username" rules={[{ required: true, message: "Please input your username!" }]} //rules을 통해 유효성검사로직이 들어가 잇다 > <Input /> </Form.Item> <Form.Item label="Password" name="password" rules={[ { required: true, message: "Please input your password!" }, { min: 5, message: "5자리 이상 해주세요" }, // 한글자 한글자 들어갈때마다 검사해준다. ]} > <Input.Password /> </Form.Item> {/* //8칸 이동하고 16칸을 쓰겠다 */} <Form.Item wrapperCol={{ offset: 8, span: 16 }}> <Button type="primary" htmlType="submit"> Submit </Button> </Form.Item> </Form> </Card> ); } 안녕하세요 강사님!! 위에서 15번째 줄에 있는 console.log("loaded Token: ", jwtAccessToken);이 부분이 페이지의 콘솔창에서 두번이나 나타납니다... 왜 그런지 알 수 있을까요?? 새로고침을 했을때도 두번 나타나고 submit을 했을 때도 2번 출력됩니다.아 ! 그리고 simplejwt토큰을 사용중 입니다!
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
jsconfig 오류 질문입니다!
{ "compilerOptions": {"baseUrl": "src" },"include": ["src"]} keonhongkoo@keonhongui-MacBookAir frontend % yarn startyarn run v1.22.19$ react-scripts startnode:internal/modules/cjs/loader:1325 throw err; ^SyntaxError: /Users/keonhongkoo/Desktop/instagram/frontend/jsconfig.json: Unexpected token / in JSON at position 75 at parse (<anonymous>) at Module._extensions..json (node:internal/modules/cjs/loader:1322:39) at Module.load (node:internal/modules/cjs/loader:1117:32) at Module._load (node:internal/modules/cjs/loader:958:12) at Module.require (node:internal/modules/cjs/loader:1141:19) at require (node:internal/modules/cjs/helpers:110:18) at getModules (/Users/keonhongkoo/Desktop/instagram/frontend/node_modules/react-scripts/config/modules.js:126:14) at Object.<anonymous> (/Users/keonhongkoo/Desktop/instagram/frontend/node_modules/react-scripts/config/modules.js:142:18) at Module._compile (node:internal/modules/cjs/loader:1254:14) at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)Node.js v18.14.1error Command failed with exit code 1.info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. 이렇게 결과가 출력되는데 해결책이 안보이네요... vscode도 재시작해봤습니다ㅠ
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
아나콘다 버전 관련 문의 드립니다~!
안녕하세요~!아나콘다를 설치하면서 두가지 정도 질문이 있습니다1) 2023.02.22날짜로 아나콘다 최신판을 설치하는데 그림과 같이 옵션사항에 환경변수 체크가 되지 않습니다 ㅠㅠ 업데이트 되면서 바뀐것인지 아나콘다 최신판에서 이 옵션을 선택하지 않아도 괜찮을까요??2) 2023.02.22날짜로 아나콘다 최신판에서는 파이썬 버전이 3.9버전인데 파이썬 공식버전으로는 3.11까지 배포가 되었습니다 버전 차이가 많이 나도 아나콘다를 설치하는게 사용에 더 편리할까요??
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
migrate 질문
- 여러분의 질문을 고대하고 있습니다. :-)- 질문 전에 검색을 먼저 해보세요. 사람 사는 게 다 비슷하다는 것을 알게 됩니다.- 예의는 거침없이 질문하기 위한 최고의 발명품입니다.- 100개의 설명이 스크린샷 한방 보다 못할 수 있습니다.- 코드를 첨부하면 전세계 누구나 이해할 수 있는 질문이 됩니다.- 하나의 질문에는 하나의 주제를 담아야 답변도 예리해집니다.- 시행착오를 알려주시면 곧 바로 원하는 문제에 집중할 수 있습니다. 안녕하세요. 선생님 강의 덕분에 개발공부 하는 데 있어 많은 도움을 받고 있습니다. 질문 읽고 답변 달아주셔서 정말 감사합니다.제 질문은 이렇습니다. 5분대에서 startapp 하고 migrate 명령을 쓰셨는데, 저희는 models.py 를 만지지 않았는데도 불구하고 왜 migrate를 하는 것인지 궁금합니다.- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결장고 설계철학으로 시작하는 파이썬 장고 입문
클로저 관련 질문
안녕하세요클로저 부분 설명이 이해가 가지 않아 질문드립니다!위 코드에서 base_number가 10인것은 이해가 갑니다만,함수안에서 number에 대한 변수 선언이 없고,return_fn이 선언될때도 number에 대한 지정하는 부분이 없는데return_fn(3)에서 number가 3이라는 것을 어떻게 아는것인지 궁금합니다.
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
글꼴설정 NanumSquare css는 되고 html style로 표기가 안되요
현재 사이트 상태 입니다. html에서는 안먹고 css만 font가 먹네요 ㅜㅜfooter.html<div style="TEXT-ALIGN: center;"> <div class="pragmatic_footer_button"> <span>공지사항</span> <span>컨텐트</span> <span>제휴문의</span> </div> <div style="font-family: 'NanumSquareB'"> <span>공지사항</span> <span>컨텐트</span> <span>제휴문의</span> </div> <div style= "margin-top: 1rem"> <h6 class="pragmatic_footer_logo">Yeongbin Lim</h6> </div> </div> base.css.pragmatic_footer_logo { font-family: 'Lobster', cursive; } .pragmatic_footer_button { font-family: 'NanumSquareB', cursive; font-size: 0.9rem; margin-top: 2rem; } .pragmatic_header { TEXT-ALIGN: center; margin: 3rem 0; }
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
리액트 업로드 후에 로그인이 되지않습니다
화이트리스트에 등록을 해놨는데 어떤게 빠져있는건지 모르겠습니다...
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
함수 컴포넌트와 필수 Hook에서 setValue({value1:10}) 관련 질문이요!
function App2() { const [value1, setValue1] = useState(0); const [value2, setValue2] = useState(0); const [value, setValue] = useState({ value1: 0, value2: 0 }); const onClick = () => { setValue({ value1: 10 }); }; return ( <div> Hello App2 <hr /> {JSON.stringify(value1)} {JSON.stringify(value2)} {JSON.stringify(value.value1)} <button onClick={onClick}>클릭</button> </div> ); } export default App2; 여기서 onClick을 수행할때 왜 value.value1의 값이 변경되는 건가요?? 첫번째에 useState(0)으로 만든 value1은 어떻게 해야 값의 변경이 되는거죠??
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
docker pip 설치에서 에러가 뜹니다
강의내용의 pord.txt 가 같은데 에러가 뜨네요 django~=3.0.0 djangorestframework djangorestframework-jwt django-cors-headers django-pydenticon pillow
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
allow host 아이피 주소를 같게 입력하였는데
이런오류가 뜨는데 어떻게 해결하면 좋을까요