• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 React 게시판 redux-toolkit ajax통신

redux-toolkit ajax통신

  • 이 주제에는 3개 답변, 2명 참여가 있으며 codingapple3 년 전에 전에 마지막으로 업데이트했습니다.
4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 글쓴이
  • #37531

    designDev
    참가자

    게시판 작업을 하면서 일단 redux-toolkit을 제외하고 하느라, App.js에서 state를 선언해서 props로 내려서 사용하고 있었습니다.

    const [boardList, setBoardList] = useState(""); 

    getBoardList().then((res) => {
          let resMap = res.map((row, i) => ({
            key: i,
            id: row._id,
            no: i + 1,
            title: row.title,
            content: row.content,
            date: row.createdAt.substr(0, 10),
          }));
          setBoardList(resMap);
        });

    이런식으로 getBoardList 함수에는 axios, async, await 를 사용하여  MongoDB에 데이터를 불러온 다음

    위 코드처럼 담아서 App.js에서 사용했었는데요. 

    이 state를 App.js->prop 사용하지 않고 이제 redux-toolkit에서 등록 후 사용하고 싶은데,

    강의 내용처럼 createSlice로 작업하고 싶은데 어떤식으로 해야될지 모르겠습니다...

    강의에서는 initialState 에 기본값을 넣어주었는데 여기에 axios를 사용하는건가 해서 넣어봤더니..

    잘못됬는지 에러가 떠서요... 

     

    정리해서 궁금한점은 아래 있는  강의 코드처럼 State를 사용하고 싶은데

    이 코드를 사용할 때 axios로 데이터를 불러온 값을 사용하고 싶으면 어떻게 해야 되나요??

    let boardList = createSlice({
      name: "boardList ",
      initialState: { name: "kim", age: 20 }, //axios데이터를 넣고 싶어요...

      reducers: {
        stateChage(state, action) {
          state.name = "john kim"; 
        },
      },
    });

     

    #37549

    codingapple
    키 마스터

    ajax요청은 컴포넌트안에서 하고 

    ajax로 가져온 결과를 dispatch(stateChage()) 안에 넣으면 됩니다 

    #37563

    designDev
    참가자

    헉 그렇군요!! 감사합니다.궁금한게 몇가지 더있는데요,,

    1. 그럼 initalSate에는 그냥 {name:'', age:''} 요런식으로빈값으로 구조에 맞게 설정만 해주는 용도인가요???

    아니면 그냥 아예 {} 이렇게 안써놔도 되나요??

     

    2. 그리고 이렇게 redux-toolkit을 사용하면 setState를 사용하지않고

    reducer에서 지정한 함수로 해준다고 생각하면 되는건가요? 

     

    #37576

    codingapple
    키 마스터

    네 구조맞게 설정해놓거나 {}만 쓰거나 맘대로 해도 됩니다 

    넴 

4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠