Необходимо получить один из элементов состояния, хранящегося в redux, по параметру роутера. В данный момент написал следующее:
class CoinDetails extends React.Component {
getCoinsDetails = () => {
const coinSymbol = this.props.match.params.id;
return this.props.coins.data.find(item => item.symbol === coinSymbol);
}
render(){
const coin = this.getCoinsDetails();
return (
<div>
{coin.name}
</div>
)
}
}
const mapStateToProps = store => {
return {
coins: store.coins,
}
}
export default connect(mapStateToProps)(CoinDetails);
В vue + vuex подобное легко реализуется с помощью getters.
Описанный выше способ работает, но кажется мне не совсем правильным, потому что вытаскивать в props почти весь state redux не требуется. Хочется задействовать функцию getCoinsDetails непосредственно в mapStateToProps, но это невозможно. Есть ли какой-нибудь способ, который поможет выйти из этой ситуации?