У меня есть массив бирж, когда пользователь выбирает биржу, я хочу использовать как имя биржи, так и ее базовую котировку.
Например, если пользователь выбирает первую опцию ниже, я хочузахватить "poloniex"
, а также базовый ключ "USDC"
.
![enter image description here](https://i.stack.imgur.com/mMuHc.png)
Сначала я попробовал использовать это:
{exchanges.map((exchange, i) =>
(<option key={i} value={exchange.exchange} base={exchange.quote}>
{capFirst(exchange.exchange)} ({exchange.quote}) ${exchange.price_quote}
</option>))}
Однако я получаю сообщение об ошибке, что base
не существует, однако не могу ли я добавить какой-либо атрибут в опцию?Возможно, нет, если это в JSX?Также data
не работал.
Type '{children: string [];ключ: номер;значение: строка;база: строка;} 'нельзя назначить типу «DetailHTMLProps, HTMLOptionElement>».Свойство «base» не существует для типа «DetailHTMLProps, HTMLOptionElement>». Ts (2322)
Другой способ, которым я пытался, - это получить ключ индекса для выбранной опции, однако следующий код выдает key = null
.
Ниже target.value
даст мне его значение, но мне также нужна базовая цитата.
@bind
handleExchangeSelect(event: React.FormEvent<HTMLSelectElement>) {
const { exchanges } = this.props;
const target = event.target as HTMLSelectElement;
console.log('target', target);
const exchange = target.value;
const key = target.getAttribute('key');
console.log('exchange', exchange);
console.log('key', key);
// if (key) {
// console.log(exchanges[Number(key)]);
// }
this.setState({
exchange,
// exchange_base: base ? base : ''
});
}