리액트와 협동해서 프로젝트를 만들어보고 있는데요
/api/members로 이동하면 현재 DB에 저장된 모든 회원을 json 리스트로 반환하는 코드입니다
근데 아래 결과물에서 페이지를 새로고침하면 맨 아래 사진과 같이 raw json이 그대로 렌더링되는데 어떤 문제가 있는걸까요 ?
같이 하는 프론트가 작성한 리액트 코드도 첨부합니다 제가 리액트는 하나도 몰라서요 ..
import { useEffect, useState } from "react";
const Confirm = () => {
const [members, setMembers] = useState([]);
const base = "htt80/";
useEffect(() => {
const fetchData = async () => {
try {
const response = await fetch(base + "/api/members", {
method: "GET",
mode: "cors",
headers: {
"Content-Type": "application/json",
},
});
if (!response.ok) {
throw new Error("Network response was not ok");
}
const data = await response.json();
const memData = Object.values(data.data);
setMembers(memData);
} catch (error) {
console.error("There was a problem with the fetch operation:", error);
}
};
fetchData();
}, []);
return (
<div className="member-list">
<h2>Member List</h2>
<ul>
{members.map((member, index) => (
<li key={index}>
Name: {member.name}, Age:{member.age}
</li>
))}
</ul>
{/* CSS를 JSX 안에 직접 포함 */}
<style>{
.member-list {
font-family: Arial, sans-serif;
border: 1px solid #ccc;
border-radius: 5px;
padding: 20px;
max-width: 400px;
margin: 0 auto;
}
.member-list h2 {
margin-top: 0;
}
.member-list ul {
list-style-type: none;
padding: 0;
}
.member-list li {
margin-bottom: 10px;
padding: 5px;
background-color: #f9f9f9;
border-radius: 3px;
}
.member-list li:last-child {
margin-bottom: 0;
}
}</style>
</div>
);
};
export default Confirm;
화면에 세번째 사진처럼 뜬다고?
넵 맞습니다
그럼 니문제 아니네 프론트 문젠데 코드를 좀 신기하게 짰내
아 너 혹시 레스트컨트롤러로 안보내냐?
@RestController 했어요
테스트코드나 포스트맨에서 큰 이상 없으면 프론트 문제같은데 내가 리액트 고수가 아니라서 뭐라 못하겠다 미안 근데 보통 axios 쓰지않나?
이게 제 문제인지 리액트 문제인지를 모르겠어서 헤매고있네여 주변에 물어 볼 사람도 없고..
json은 계속 정상적으로 반환되고 로그도 뜨는데 왜 새로고침하면 렌더링이 안되는지 ;
좀 찾아봤는데 오브젝트.밸류로 한번 더 돌아갈 필요있나? 아닐 수 있지만 문제가 있다면 여기같은데
이게 제이슨 값을 리스트로 바꿔주는거같은데 제이슨 그냥 순회하면서 랜더링하면 되잖아
난 전문가는 아니니깐 그냥 흘려들어
리액트 코드 말씀하시는거죠 ?
ㅇㅇ
근데 밑에 map으로 돌리는 코드가 있는 거 같은데,,
근데 지금 자세히 봣는데 오류난 코드 보면 data 속을 접근 못하잖아. 접근 하는 코드는 옵젝.벨류(데이터.데이터) 여기고. 그러니깐 이쪽 전후로 로그 찍어보던가 해도되겠네.
아 니 서버도 데이터를 좀 이상하게 보내는거같은데
@return (MembersResult - > MemberCount + MemberList) + Http status 200 전체 조회 결과를 총 갯수 + json배열 이렇게 보냈는데 잘못된건가요 ?
암튼 더 자세히 보고싶은데 내가 밖이라서 미안