У меня есть api вкладки, которая имеет имя вкладки, идентификатор вкладки и идентификатор значка (его внешний ключ). Я хочу показать значок своей вкладки, но как я могу показать, когда api сконструирован таким образом.Показать значок своей вкладки
API/вкладка
[
{
"id": 114,
"name": "analytics",
"icon": 2,
},
{
"id": 127,
"name": "share",
"icon": 2,
}
]
API/значок
[
{
"id": 1,
"name": "computer",
},
{
"id": 2,
"name": "insert-photo",
},
{
"id": 3,
"name": "account-circle",
}
]
header.js
componentDidMount() {
this.props.fetchTabs();
}
render() {
const tabs = _.map(this.props.tabs.tabs, (tab) =>
<span className="tab" key={tab.id}>
<a href="">{tab.name}</a>
</span>
);
const mapStateToProps = (state) => ({
fetchIcon: state.fetchIcon,
tabs: state.tabs,
});
function mapDispatchToProps(dispatch) {
return bindActionCreators({
fetchTabs,
}, dispatch);
}
Помогите мне в том, как показать значок вкладки, поскольку они связаны с идентификатором?
скриншот ошибки
при использовании
const mapStateToProps = (state) => ({
fetchIcon: state.fetchIcon,
tabs: state.tabs.map(tab => ({
...tab, icon: state.fetchIcon.find(icon =>
icon.id === tab.icon)
).name
}),
tabsPost: state.tabsPost
});
я получаю ошибку на .name части как неожиданный знак. Const mapStateToProps = (состояние) => ({ fetchIcon: state.fetchIcon, вкладки: state.tabs.map (вкладка => ({ ... вкладка, значок: state.fetchIcons.find (иконка => icon.id === tab.icon) ) .name }) tabsPost: state.tabsPost }); – Serenity
, что означает, что он не может найти значок с данным идентификатором. – mostruash
Я обновил свой вопрос с помощью ошибки скриншот – Serenity