묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
dataId = useRef(0) 질문입니다.
const dataId = useRef(0) 질문입니다. 강의 들을 때는 그냥 음~ 하면서 들었는데 나중에 생각해보니.. 왜 useRef를 쓰는 건지 잘 모르겠습니다. 그냥 const [dataId, setDataId] = useState(0); 해도 문제 없을 것 같은데.. 어떨까요??
-
미해결애플 웹사이트 인터랙션 클론!
스크롤이 적용이 안되는것같아요!ㅜㅜ
스크롤도 늘어나질 않고 스티키도 안보이고 씬도 변하질 않고 계속 0에 있어요ㅜㅜ 첨부하겠습니당 const main = () => { let y0ffset = 0; const sceneInfo = [ { //0 type: 'sticky', heightNum: 5, //브라우저 높이의 5배로 scrollHeight 세팅 scrollHeight: 0, objs: { container: document.querySelector('#scroll-section-0') } }, { //1 type: 'normal', heightNum: 5, scrollHeight: 0, objs: { container: document.querySelector('#scroll-section-1') } }, { //2 type: 'sticky', heightNum: 5, scrollHeight: 0, objs: { container: document.querySelector('#scroll-section-2') } }, { //3 type: 'sticky', heightNum: 5, scrollHeight: 0, objs: { container: document.querySelector('#scroll-section-3') }, } ]; function setLayout() { //각 스크롤 섹션의 높이 세팅 for (let i = 0; i < sceneInfo.length; i++) { sceneInfo[i].scrollHeight = sceneInfo[i].heightNum * window.innerHeight; sceneInfo[i].objs.container.style.height = `${sceneInfo[i].scrollHeight}px`; } console.log(sceneInfo); } function scrollLoop() { } window.addEventListener('resize',setLayout); window.addEventListener('scroll',() => { y0ffset = window.pageXOffset; scrollLoop(); }); setLayout(); }; main();
-
미해결자바스크립트 중급 강좌
async에서 catch 질문 있습니다.
async에서 catch 질문 있습니다. async function getName(){ // return Promise.resolve("Tom"); throw new Error("err.."); // 왜 이걸로 하면 } console.log(getName()); getName() // .then(name=>{ // console.log(name); // }) .catch(err => { console.log(err); }); 여기서 계속 error가떠서 async&await.js:5 Uncaught (in promise) Error: err.. at getName (async&await.js:5:9) at async&await.js:8:13 Uncaught (in promise)를 구글링 해보니, catch를 제대로 하지 않아서 그렇다고 하더군요. (참고 : https://www.codegrepper.com/code-examples/javascript/uncaught+in+promise+error) 하지만, 거기서도 작성하라는 catch문이 수업시간에 한 catch문 그대로 였습니다. 어떻게 해야 이 error를 해결할까요?
-
미해결만들면서 배우는 리액트 : 기초
github page로 배포하기 이후 질문입니다.
안녕하세요, 유림님의 친절하고 상세한 설명에 쉽게 완강할 수 있었습니다. 다 듣고 나서 궁금증이 생겨서 질문을 드리게 되었습니다. 현재 강의 기준(37 빌드한 결과물 github page로 배포하기) 후에 제가 추가로 소스를 수정하게 되면 예를들어 생성버튼의 이름을 생성123으로 변경했다고 가정했을 시 main branch를 통해서 소스 수정한 부분을 github에 배포를 하고서 cat-jjal-maker-cra 폴더로 가서 npm run build, npm run deploy를 실행해주면 되는걸까요? 소스 배포를 안하더라도 수정 이후에 npm run build, npm run deploy를 했을 경우 제 페이지에서 수정되는게 확인은 가능해서 위 질문을 드리게 되었습니다. ( commit, push를 안해도 페이지의 내용은 변경되지만 그럼 결국 main branch 와는 상이한 소스가 되니 변경된 소스를 commit, push를 해주는 걸까요? )
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
Vue3에서 render
데이터는 잘 불러와지는데, 렌더가 작동이 안되다는 오류 메세지 때문에, 공식 문서에서 찾아보았습니다.더 이상 render함수가 더이상 전달인자로 받지 않기 때문에 import ListView from './ListView.vue' import { h } from 'vue' export default function createListView(name) { return { //재사용할 인스턴스(컴포넌트) 옵션들이 들어갈 자리 name : name, created() { this.$store.state.loading = true this.$store.dispatch('FETCH_LIST', this.$route.name) .then(() => { console.log('success LIST') this.$store.state.loading = false }) .catch((error) => console.log(error)) }, render() { return h(ListView); } } } h 를 'vue'에서 불러와서 사용하더라구요. 이때 h 는 어떤 역활을 해주게 되나요? 위처럼 수정해서 정상적으로 화면에 표시 됩니다!
-
해결됨Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
props 및 데이터 작명 관련해서 질문 드립니다.
props등이나 데이터들을 넘길때, 항상 작명을 관련있지만 다르게 하시잖아요? (ex : userInfo , info) 수업중에 작명을 다르게 할 수 있다는걸 보여주시기 위해 작명을 다르게 한다고도 하셨는데, 실무에서 다른 개발자들이랑 개발을 진행할때, 데이터 이름을 서로 같게 해주는게 좋은지, 수업에 하시는것처럼 다르게 작명해주는게 좋은지 오히려 같게 해주면 거슬러 올라가거나 수정하기가 더 어려울거 같다는 생각도 드네요.. 개인적으로는 뷰가 아직 덜 익숙해서 그런지, 데이터 이름이 다르니 조금 헷갈리는 부분이 있어서 ㅎㅎ 같게 해주고 있습니다.
-
해결됨Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
DetailView 변수명
- 학습에 관련된 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. post_list.html에서는 변수를 소문자로 변환한 모델명 + _list 로 사용했는데 post_detail.html에서는 변수를 소문자로 변환한 모델명(post)로 사용한건가요? 어떤 방식으로 하는건지 설명이 없어서요...
-
해결됨Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
저 처럼 강사님 말 안듣고 Vue3하다 dispatch error 난 경우 해결
잘 따라 하다가 또잉 이런 애러가 계속 나서 1시간 해매다가 바보같이 main.js import { createApp } from 'vue' import App from './App.vue' import router from './routes/router' import store from './store/store' createApp(App).use(router, store).mount('#app') 이렇게 했다가 import { createApp } from 'vue' import App from './App.vue' import router from './routes/router' import store from './store/store' createApp(App).use(router).use(store).mount('#app') 이렇게 고쳤더니 store를 잘 인식하네요..수업 초반에 히힛 난 vue3 써야지~ 하고 강사님말 안듣고 여기까지 오다보니 다시 Vue2로 돌아갈 자신이 없어 돌아가지 못하네요
-
미해결
함수 안에서 선언된 변수를 가지고 오고 싶습니다.
1.markers라는 빈 배열을 전역으로 선언하고 그 배열안에 marker1이라는 마커좌표들을 넣어서 출력하고 싶은데요 marker1은 addmarker라는 함수 안에서 선언된 변수입니다. 그래서 함수 안에서 marker1이라는 값을 push해서 배열에 추가했는데 함수 바깥에서는 값이 사라집니다 2.그리고...marker1의 값이 push로 markers에 넣어지는데 //markers.push(marker1) markers = marker1과는 값이 다르게 나와서 결과물이 다르네요. 어떻게해야 markers=marker1처럼 나오게 배열에 넣을 수 있을까요 var markers = []; function addMarker(position) { // 마커를 생성합니다 var marker1 = new kakao.maps.Marker({ position: position }); markers.push(marker1); console.log(markers) } console.log(markers);
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
연속부분수열2 질문
선생님 안녕하세요. 해당 강의 보다가 궁금한 점이 있어서 질문 드립니다. 혹시 배열의 특정 원소가 m보다 크면, (만약 m=5이고 [1,7,1,2,3] 이라는 배열이 주어진다면) 어떻게 풀이가 되는지 알려주실 수 있을까요?
-
미해결함수형 프로그래밍과 JavaScript ES6+
기존 내장함수와의 차이점
안녕하세요! L.map을 직접 만들어서 사용하셨는데 기존에 존재하는 내장함수인 iterable.map() 같은 함수를 사용하지 않고 매번 L.map과 같은 함수를 구현해줘야만 지연 평가를 할 수 있는 것인지 궁금합니다! 감사합니다.
-
미해결[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
defaultProps 설정과 Optional_chaining
# 의문 - 리액트에서 배열 사용하기 1 - 리스트 렌더링 (조회) 강의 중 12분 쯤 - 리액트에서 props를 내려줄 때 undefined 값일 수도 있는데 그 때 defaultProps 문법을 사용해도 되지만 ? 문법을 사용해도 코드가 동작합니다. 두 개 중 선택할 때 뭘 기준으로 선택하는지 궁금합니다. - 참고: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining ```javascript= {<h4>{diaryList ? diaryList.length : 0}개의 일기가 있습니다.</h4>} DiaryList.defaultProps = { diaryList: [], } ```
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
vue3 코드 공유
vue3로 진행하면 코드가 달르게 해야되서 코드 공유합니다. main.js ChartPlugin.js 혹시 Best practice가 아니라면 알려주세요! 감사합니다.
-
해결됨모던 자바스크립트 딥다이브 스터디
생성자 함수를 즉시실행함수로 감싸는 이유가 궁금합니다.
예제25-01을 보면 생성자를 즉시실행함수로 감싸는 패턴이 있던데요. var Person = (function(){ function Person(name) { this.name = name; } Person.prototype.sayHi = function(){ console.log('Hi! My name is ' + this.name); }; return Person; })(); var me = new Person('Lee'); me.sayHi(); 굳이 이렇게 하는 이유는 무엇인가요? 아래와 같이 그냥 일반 함수 선언문으로 해도 될것 같은데요. function Person(name) { this.name = name; } Person.prototype.sayHi = function(){ console.log('Hi! My name is ' + this.name); } var me = new Person('Lee'); me.sayHi(); 혹시 함수 호이스팅? 때문에 그런거면 변수에 생성자를 할당해면 될것 같은데요... 즉시실행함수를 쓰는 이유를 도무지 모르겠네요; var Person = function Person(name) { this.name = name; } Person.prototype.sayHi = function(){ console.log('Hi! My name is ' + this.name); } var me = new Person('Lee'); me.sayHi();
-
해결됨Vue.js 시작하기 - Age of Vue.js
Main.js 부분이 다르게 나옵니당
영상이 녹화됐을때랑 제가 쓰는 버전이랑 차이가 있어서 그런지 메인부분이 다르게 나옵니다. 이부분은 그냥 다른갑다... 하고 이해만 하고 넘어가도 될까요?
-
미해결<M.B.I.T> 테스트 페이지 만들기! with Django
js) 2/3 -> 3/3으로 안 넘어갑니다
1/3 -> 2/3 은 잘 되는데 2/3 -> 3/3은 안 넘어갑니다. const vheight를 .text가 아니라 영상대로 .test로 했을 땐 아예 넘어가지도 않았구요,(근데 이건 질문이랑 답, 버튼들 div class명이 text로 되어있어서 그런 것 같습니다.) 오타가 난 건가 확인을 해봐도 오타는 하나도 없는데 왜 안 되는지 모르겠습니다. 밑에는 자바스크립트 코드이구요. 혹시 css에서 수치를 잘 못 설정하면 이렇게 될 수도 있나요? 아니면 j query 때문일 수도 있나요.. ? 해결방법 아시는 분들 도움 부탁드립니다. (참고: alert창 나오는 부분은 일부러 코드를 적지 않았습니다. 커뮤니티 글 다 확인해보고 할 수 있는 수정은 다 해봤는데 안 됐습니다.)
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
i 태그에 v-on:click 이벤트랑 v-bind:class가 적용되지 않습니다.
강의를 보면서 따라서 타이핑하고 있는데, i 태그에서 이벤트랑 클래스 바인딩이 안됩니다. 아래에 span태그에서는 적용되는데, 이유가 뭔지 알 수 있을까요? <template> <div> <ul> <li v-for="(todoItem, index) in todoItems" v-bind:key="index" class="shadow"> <span v-on:click="toggleComplete(todoItem, index)"> <i class="checkBtn fas fa-check" v-bind:class="{checkBtnCompleted: todoItem.completed}"></i> </span> <span v-bind:class="{textCompleted: todoItem.completed}">{{todoItem.item}}</span> <span class="removeBtn" v-on:click="removeTodo(todoItem, index)"> <i class="fas fa-trash-alt"></i> </span> </li> </ul> </div> </template> <script> export default { data: function() { return { todoItems: [], } }, methods: { removeTodo: function(todoItem, index) { console.log('ffff'); localStorage.removeItem(todoItem); this.todoItems.splice(index, 1); }, toggleComplete: function(todoItem) { todoItem.completed = !todoItem.completed; } }, created: function() { if(localStorage.length > 0) { for (var i = 0; i < localStorage.length; i++) { this.todoItems.push(JSON.parse(localStorage.getItem(localStorage.key(i)))); } } } } </script> <style scoped> ul { list-style-type: none; padding-left: 0px; margin-top: 0; text-align: left; } li { display: flex; min-height: 50px; height: 50px; line-height: 50px; margin: 0.5rem 0; padding: 0 0.9rem; background: white; border-radius: 5px; } .removeBtn { margin-left: auto; color: #de4343; } .checkBtn { line-height: 45px; color: #62acde; margin-right: 5px; align-self: center; } .checkBtnCompleted { color: #b3adad; } .textCompleted { text-decoration: line-through; color: #b3adad; } </style>
-
해결됨모던 자바스크립트 딥다이브 스터디
실행컨텍스트에서 BindingObject를 통한 객체의 프로퍼티와 메서드 질문
전역코드 평가 과정에서 var 키워드로 선언한 전역 변수와 함수 선언문으로 정의된 전역함수는 전역 환경 레코드의 객체 환경 레코드에 연결된 BindingObject를 통해 객체의 프로퍼티와 메서드가 된다. 라는 문장이 있는데요. 여기서 "BindingObject를 통해 객체의 프로퍼티와 메서드가 된다"라는 의미를 좀 더 구체적으로 알수 있을까요? 그림이 안그려지네요 ^^; 프로퍼티와 메서드가 된다는 의미가 무엇인지요. 어떻게 객체 이름을 생략하고 접근 가능한지요
-
미해결[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
페이지 구현 - 일기 쓰기
안녕하세요! 강의 잘 듣고 있었는데요 저도 윗 분들 처럼 일기 작성 후에 네비게이트로 페이지 이동까지는 되는데 작성한게 업데이트가 안됩니다 ㅠㅠ https://codesandbox.io/s/blazing-sun-kyl8yt?file=/src/components/EmotionItem.js
-
해결됨[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
onCreate 및 dispatch 함수 내에서 data값 확인은 어떻게 할 수 있을까요?
안녕하세요! 해당 강의를 다 마치고, 사진과 같이 onCreate 함수 내부에서 data를 콘솔로 출력해보니 data 값을 읽어오지 못하는데 그 이유가 뭘까요?? data.length와 같은 작업을 진행하고 싶은데 어떻게 접근해야 할지 모르겠어서 질문 남깁니다 !