我在商店中有一個對象數組,並且有一個頁面列出了商店中的所有商品。我希望有一個組件僅列出來自其中一個單獨項目的信息。但我不明白如何將商店中的對象從商店傳遞到組件。React Redux:如何將特定對象prop從存儲區傳遞給子組件?
Router.js:
<Route path="/" component={MainLayout}>
<IndexRoute component={EventListContainer} />
<Route path=":eventID" component={EventProfileContainer} />
</Route>
所以,根頁是罰款,並列出了所有在店裏事件項目。我想使用:eventID
路線列出各個事件項目。
EventProfileContainer.js:
import _ from 'lodash';
const EventProfileContainer = React.createClass({
render: function() {
return (
<EventProfile {...this.props.event} />
);
}
});
const mapStateToProps = function(store, ownProps) {
return {
event: _.find(store, 'id', ownProps.params.eventID)
};
};
export default connect(mapStateToProps)(EventProfileContainer);
我認爲這裏的重要組成部分,是mapStateToProps
功能。我想我應該從這個零件中選擇商店中的單個對象:event: _.find(store, 'id', ownProps.params.eventID)
(使用lodash _.find())。但也許我錯過了什麼?
EventProfile.js:
export default function(props) {
return (
<div className="event-profile">
<img src={props.image} />
<div className="details">
<h1>{props.name}</h1>
<p>{props.description}</p>
</div>
</div>
);
}
東西被傳遞給EventProfile.js
但頁面快到了空白。名稱,編號,圖片和說明爲空白。在商店的對象是這樣的:
name: 'name of the event',
id: '2342343'
description: 'description of the event'
image: 'http://whatever.com/whatever.jpg'
我不知道我在做什麼錯。任何幫助表示讚賞!