2017-09-22 2 views
1

ReactNative + React Redux를 사용하고 있습니다.배열에 중첩 된 결과

내 감속기 :

const initialState = { 
    categories: [] 
} 


case "FETCHING_SUCCESS": 
     return { 
     ...state, 
     isAdding: false, 
     categories: [...state.categories, action.data] 
     } 

내가받은 데이터는 다음과 같습니다

[ 
{id:1, name: 'name01', someId: 11}, 
{id:2, name: 'name02', someId: 22}, 
{id:3, name: 'name03', someId: 33} 
] 

내가 할 경우 :

case "FETCHING_SUCCESS": 
     return { 
     ...state, 
     isAdding: false, 
     categories: action.data  // <= Notice This 
     } 

나는 데이터 미세 얻을 - "(CONSOLE.LOG을 CATEGORIES : ", this.props.caregories); :

enter image description here

는하지만 기존 데이터에 수신 된 데이터를 추가하고자합니다. 그래서 만약 내가 할 :

categories: [...state.categories, action.data]

나는 배열로 배열을 얻을 :

enter image description here

그리고 한층 더 자세한 API 호출에

여러 어레이는 기본 하나에 중첩.

어떻게 해결할 수 있습니까? 난 그냥 기본 배열을하고 배열을 기본 배열에 중첩 싶지 않아요. 나는 map 수 있으며 기본 배열에서 데이터를 표시합니다. 데이터를 추가해야하는 다른 이유가 무엇인지 이해할 수 없습니다.

감사합니다.

답변

1

당신이하려는 의도는 categories: [...state.categories, ...action.data]입니다.

1

귀하의 codde은 다음과 같아야합니다

case "FETCHING_SUCCESS": 
     let newCategories = [...state.categories, ...action.data]; 
     return { 
     ...state, 
     isAdding: false, 
     categories: newCategories 
     } 

확인이 조각 아웃 :

var state = { 
 
    categories: [1,2,3,4], 
 
    isAdding: true, 
 
    done: false 
 
}; 
 
    let data = [5,6,7,8]; 
 
    let newcategories = [...state.categories, ...data]; 
 
    state = { 
 
     ...state, 
 
     isAdding: false, 
 
     categories: newcategories // <= Notice This 
 
    } 
 
console.log(state)

관련 문제