В настоящее время у меня есть класс с state и render () как таковой:
class ExchangeContainer extends Component {
constructor(props) {
super(props);
this.state = {
exchanges:[
{
name:"binance",
url:"https://binance.com"
},
{
name:"bittrex",
url:"https://bittrex.com"
}
]
};
}
render() {
return (
<div className="ExchangeContainer list-group">
<ExchangeList exchanges={this.state.exchanges}/>
<ExchangeDetail />
</div>
);
}
}
Обратите внимание, что состояние передается как React prop.Затем эта опора используется (ниже) в другом объекте:
getListItem = (exchangeUrl, exchangeName) => (
<a className="nav-link active" href={exchangeUrl}>
{exchangeName}
</a>
);
render() {
return (
<li className="list-group-item">
{this.getListItem(this.props.exchange.url, this.props.exchange.name)}
</li>
);
}
Учитывая вышеизложенное, я предполагаю, что я изменяю объект состояния как объект вместо массива как такового:
this.state = {
exchanges:{
binance:{
url:"https://binance.com"
},
bittrex:{
url:"https://bittrex.com"
}
}
};
Как мне позже изменить бит ES6, чтобы ссылаться на ключ объекта (я думаю об этом, как об ассоциативном массиве в perl, если это помогает - например, "binance") вместо поиска this.props.exchanges.name, которого больше нет?Например (psuedocode - посмотрите, что второй аргумент теперь «ключ» вместо «имя»)
render() {
return (
<li className="list-group-item">
{this.getListItem(this.props.exchange.url, this.props.exchange.key)} //KEY not NAME
</li>
);