내가 내 라우터에 :reviewId
로 내지도 배열을 필터링하기 위해 노력하고있어 (V4) URL 반응에 따라 매핑 된 객체를 필터링 나는 {review.items가 routeId 매개 변수를 수동으로 설정하면 코드가 작동는 라우터
.filter (item => item.id === 2)`
및 {this.props.match.params.reviewId}
도 routeId 매개 변수를 표시하지만 함께 사용하면 결과가 표시되고 콘솔 오류는 표시되지 않습니다.
경로
<Route exact path="/reviews/:reviewId" component={Review} />
JSON 데이터
const reviews = [
{
id: '1',
cat: 'film',
items: [
{ id: 1, name: 'Review 1', text: 'bla bla review 1', img: 'http://epn.tv/wp-content/themes/elecplay-2014/images/hexrotr/hexrotr_reviews_two_on.png' },
{ id: 2, name: 'Review 2', text: 'bla bla review 2' },
{ id: 3, name: 'Review 3', text: 'bla bla review 3' },
],
},
{
id: '2',
cat: 'music',
items: [
{ id: 1, name: 'Review 1', text: 'bla bla review 1', img: 'http://epn.tv/wp-content/themes/elecplay-2014/images/hexrotr/hexrotr_reviews_two_on.png' },
{ id: 2, name: 'Review 2', text: 'bla bla review 2' },
{ id: 3, name: 'Review 3', text: 'bla bla review 3' },
],
},
]
export default reviews
review.jsx 내가 생각
import reviews from '../Reviews/const'
export default class Reviews extends React.Component { // eslint-disable-
line react/prefer-stateless-function
static propTypes = {
match: React.PropTypes.node.isRequired,
}
render() {
const revs = reviews.map(review =>
<div>
<div key={review.id} />
{review.items.filter(item => item.id === this.props.match.params.reviewId)
.map(item =>
<div className="cell">
<div key={item.id}>
<img src={item.img} alt={item.name} />
<div>{item.text}</div>
</div>
</div>,
)}
</div>,
)
return (
<div>
{this.props.match.params.reviewId}
{ revs }
</div>
)
}
}
// eslint-disable- 라인/반응 선호 - 비 저장 기능 모두 한 줄에 있어야 을 - 그것은 당신의 코드에서 오류를 일으킬 수 있습니다. –