질문있어요. React 사용자 처리 수업에서
143
작성한 질문수 21

이게 계속로딩중이라고 뜹니다
import { Input, Button} from 'antd';
const { TextArea } = Input;
import { useState } from "react";// 저장하는 곳임포트
const DiaryInput = (isLoading, onSubmit) => {
const [userInput, setUserInput] = useState("");
// isLoading 로딩상태에서 사용하는 변수
// inSubmit 다입력 작성하면 사용
const handleUserInput = (e) => {
setUserInput(e.target.value);
};
const handleClick = () => {
onSubmit(userInput);
};
return (
<div>
<TextArea
value={userInput}
onChange={handleUserInput}
placeholder="오늘 일어난 일들을 간단히 적어주세요."
/>
<Button loading={isLoading} onClick={handleClick}>
GPT 회고록을 작성해줘!
</Button>
</div>
);
}
export default DiaryInput;import { useState } from 'react';
import { CallGPT } from './api/gpt';
import DiaryInput from './components/DiaryInput';
const dummyData = {
"title": "고립된 개발자의 고민",
"thumbnail": "https://source.unsplash.com/1600x900/?programming",
"summary": "혼자 코딩과제를 진행하면서 걱정이다.",
"emotional_content": "최근 혼자 코딩과제를 진행하면서, 협업이 없이 모든 것을 혼자 결정하고 해결해야 한다는 부담감에 많이 무겁습니다. 강의를 듣고 최선을 다해 프로젝트를 진행했지만, 예상치 못한 버그들로 인해 스트레스가 많이 쌓였습니다. 스택오버플로와 GPT를 통해 문제를 해결하긴 했지만, 이러한 문제해결 방식이 정말로 제 개발 실력을 향상시키는지에 대해 의문이 듭니다. 왠지 스스로의 능력을 시험할 기회를 잃은 것 같아 아쉽고, 불안감도 커지고 있습니다.",
"emotional_result": "이 일기에서 감지되는 감정은 불안, 부담감, 그리고 자신감의 결여입니다. 고립된 상황에서의 성공에 대한 압박감과 문제 해결 방법에 대한 의심은 정서적으로 큰 부담을 주고 있습니다. 자기 효능감이 낮아짐을 느끼는 상황입니다.",
"analysis": "고립되어 문제를 해결하는 과정은 큰 스트레스와 불안을 유발할 수 있습니다. '혼자서 하는 일은 좋은 일이든 나쁜 일이든 더욱 크게 느껴진다'는 에릭 에릭슨의 말처럼, 혼자서 모든 것을 해결하려는 시도는 때로는 개인의 성장에 도움이 될 수 있지만, 지속적인 고립은 자기 효능감을 저하시킬 수 있습니다. 이러한 상황에서는 자신의 노력을 인정하고, 필요한 경우 도움을 요청하는 것이 중요합니다.",
"action_list": [
"프로젝트 중 발생하는 문제를 혼자 해결하려 하지 말고, 멘토나 동료 개발자와 상의를 통해 해결 방안을 모색하라.",
"정기적으로 자신의 학습 방법과 진행 상황을 평가하여, 필요한 경우 학습 방식을 조정하라.",
"개발 과정에서의 스트레스 관리를 위해 적절한 휴식과 여가 활동을 통해 정서적 안정을 찾으라."
]
};
function App() {
const [data, setData] = useState(dummyData);
// 우선 빈문자열로 해놓고
const [isLoading, setIsLoading] = useState(false);
const handleClickAPICall = async (userInput) => {
try {
setIsLoading(true);// 처음에는 로딩을 트루
const message = await CallGPT({
prompt: `${userInput}`,
});
// Assuming callGPT is a function that fetches data from GPT API
setData(JSON.parse(message));
} catch (error) {
// Handle error (you might want to set some error state here)
} finally {
setIsLoading(false);//다음에는 펄스로
}
};
const handleSubmit = (userInput) => {
handleClickAPICall(userInput);
};
console.log(">>data", data);
return (
<>
<DiaryInput isLoading={isLoading} onSubmit ={handleSubmit} />
<button onClick={handleClickAPICall}>GPT API call</button>
<div>title : {data?.title}</div>
<div>analysis : {data?.analysis}</div>
<div>emotional_content : {data?.emotional_content}</div>
<div>emotional_result : {data?.emotional_result}</div>
</>
);
};
export default App;
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
코드를 살펴보니, <DiaryInput /> 컴포넌트를 사용하는 부분에서 isLoading과 onSubmit을 정확하게 prop으로 전달하고 있지만, DiaryInput 컴포넌트에서 이 props를 받는 방식에 문제가 있는 것 같습니다. React 컴포넌트에서 props를 받을 때는 함수의 파라미터로 받아야 하는데, 현재 DiaryInput 컴포넌트는 일반 함수의 파라미터처럼 개별 변수로 받고 있습니다. 이를 해결하기 위해 다음과 같이 수정할 수 있습니다.
DiaryInput 컴포넌트의 파라미터를 구조 분해 할당을 사용하여 props에서 isLoading과 onSubmit을 올바르게 추출해야 합니다.
// DiaryInput 컴포넌트 수정
const DiaryInput = ({ isLoading, onSubmit }) => {
const [userInput, setUserInput] = useState("");
// 나머지 코드는 동일하게 유지
};
이렇게 수정하면, isLoading과 onSubmit을 props로부터 올바르게 받아와서 컴포넌트 내에서 사용할 수 있게 됩니다. 수정 후 계속 로딩 중인 문제가 해결되어 onSubmit 함수를 통해 GPT API 호출을 정상적으로 수행할 수 있어야 합니다.
이 변경을 적용해보시고, 문제가 지속되면 추가적으로 콘솔에서 오류 메시지를 확인하거나, API 호출 과정에서 발생할 수 있는 에러 핸들링 부분을 더 자세히 살펴보세요.
교재 파일이나 실습자료 한번에 다운로드 받는 메뉴가 없나요
0
3
0
명시적 타입 선언(콜론 타입 선언)과 as 타입 단언 차이
0
5
1
max x5 플랜을 결제했습니다.
0
8
1
클로드 초기 설정
0
7
1
사용자 스코프 설정 파일 적용 문제
0
8
1
6-6
0
11
1
클로드코드 유료플랜 할인 방법이 있을까요?
0
22
0
API Error : 400 에러의 원인과 해결방법이 궁금합니다!!
0
16
2
퍼미션 권한 설정 문의
0
19
2
Json 플러그인 사용시 variable collection 없음
0
14
1
커서에서 shift+enter가 안됩니다.
0
20
2
mcp 설치를 못하겠어요
0
35
2
라이브러리 관련 질문 있습니다!
0
26
2
output-styles은 Claude Code의 공식 기능이 아니라고 하는데 혹시 변경된걸까요?
0
26
2
css가 화면에 반영이 되지않습니다.
0
162
1
speed.js란 파일자체가 프로젝트에 없습니다!
0
146
1
웹브라우저에서 글만작성하면 에러가 납니다
0
451
1
임폴트가 안됩니다
0
147
1
프롬프트 내용은 어디서 볼수있나요?
1
418
2
왜 {import.meta.env.VITE_SOME_KEY} 가 적용이 안될까요 ㅠㅠ
1
706
2
마크다운 이미지가 잘 작동안합니다.
1
560
2
프롬프트 명령어 - 입력값과 동일한 언어로 받으려면 어떻게 작성할까요?
1
459
2
useState 오류
1
817
2
const handleEnter 문에 궁금한게 있습니다.
2
319
2





