2017-09-11 2 views
0

Im normalizr을 사용하여 id를 기반으로 API 응답을 표준화합니다. 따라서 최종 정규화 된 응답은objectMap에서 평면 목록 사용

{ 
    "names": { 
    "12": { 
     "Name": "ABC", 
     "Status": "0", 
     "Count": 11, 
    }, 
    "31": { 
     "Name": "CDE", 
     "Status": "1", 
     "Count": 12, 
    } 
    } 
} 

일 수 있습니다.이 이름 개체 맵은 평면 목록에서 어떻게 사용할 수 있습니까? 그것은 배열이 아니라 객체 맵입니다.
이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

추신 : 나는 lodash _.values() 기능이 있다는 것을 알고 있지만, 거대한 응답 속도가 느려질 것이라고 생각합니다.

답변

1

먼저이 배열

에게 돌아갑니다 당신이

const dataname = data.names 
const datanamearr = Object.keys(dataname).map(key => dataname[key]) 

로 할 수있는이 데이터

{ 
    "names": { 
    "12": { 
     "Name": "ABC", 
     "Status": "0", 
     "Count": 11, 
    }, 
    "31": { 
     "Name": "CDE", 
     "Status": "1", 
     "Count": 12, 
    } 
    } 
} 

Object.keys

와 배열을 반환하는 개체를 변경할 수 있습니다 데이터를으로 렌더링 할 수 있습니다. 지도 기능을 가진

{datanamearr.map((item) => 
    <FlatList 
     data={item} 
     renderItem={({item}) => <Text>{item.Name}</Text>} 
    /> 
) 
}