I 슈퍼 간단한이 아래와 같은 원소를 반응 가지고대하여 반복 반응 요소
const Stores = ({ stores }) => {
const renderStores =() => Object.keys(stores).map(store => {
return (
<div key={store}>
{ store }
</div>
)
})
return (
<div>
{ renderStores() }
</div>
)
}
는 소품과 반복을 통해 등 (그것이 POJO 아닌 배열이다) stores
취하는 그 열쇠는 상점의 이름을 표시합니다. 내가 요소를 이런 식으로 반응 쓸 때
문제가되면, stores
이 정의되어 있지 않거나 내 응용 프로그램이 시점에서 null이 될 수 있고 당신이 정의되지 않았거나 널 (null)을 반복 할 수 없기 때문에이 오류가 발생하는 Object.keys
원인 .
내가 원하는 것은 에 대한이 반응 구성 요소의 동작이 인 경우 stores
이 정의되지 않았거나 null 인 경우입니다.
나는 나의 renderStores
기능을 포장하고 정의되지 않은/널 (null)를 확인해야 할 필요성을 피하기 위해 싶습니다
const Stores = ({ stores }) => {
const renderStores =() => {
if (stores) {
return Object.keys(stores).map(store => {
return (
<div key={store}>
{ store }
</div>
)
})
} else {
return <div></div>
}
}
return (
<div>
{ renderStores() }
</div>
)
}
을하지만이 눈에 쉽지 않다.
내가 대신이 작업을 수행 할 수 있습니다 :
return (
<div>
{ stores ? renderStores() : '' }
</div>
)
하지만이 상용구처럼 보인다.
더 나은 방법이나 일반적인 규칙을 사용하면 반응이없는 요소로 반복하기 위해 undefined/null을 전달할 때 Object.keys()
에서 오류가 발생하지 않도록 보호 할 수 있습니까? stores
이 null
또는 undefined
입니다
이 접근법을 사용하려면 - 기본값을 사용하십시오.'const Stores = ({stores = {}}) => {'상황이 훨씬 더 분명합니다. –