Я установил событие onClick
в ListItem. Затем вызывается .bind
по методу, вызываемому для передачи значений идентификатора и имени элемента clicked list.Как передать параметры в привязке события onClick?
Следующий SO question предложил использовать bind, но кажется, что событие onCLick в ListItem прерывает переплет списка.
Перед тем как добавить событие click, привязка списка к asset.name
работает так, как ожидалось, и этот список заполняется.
Также, если я попробую onClick={this._onAssetSelected()
без параметров, событие клика не работает.
Вопрос:
Как вы можете передать параметры в затруднительное событие OnClick в JSX?
Определение списка:
<List selectable={true} selected={0}>
{
this.state.data.map(function (asset) {
return (
<ListItem justify="between" onClick={this._onAssetSelected.bind(this, asset.name, asset.id)} >
<span>{asset.name}</span>
</ListItem>
);
})
}
</List>
метод вызывается из события щелчка:
_onAssetSelected(assetName, assetID) {
console.log(assetName);
console.log(assetID);
}
Использование типичных замыканий - путь. Я бы также передал полный объект активов, а не конкретные свойства. – gor181
Итак, я определил анонимную функцию, как указано выше. Консоль в dev-инструментах говорит мне: «Uncaught TypeError: Can not read property» _onAssetSelected «undefined». Я вижу, что этот метод определен в классе. Или я пропустил что-то еще здесь? –
Вы должны добавить 'var _this = this' перед обработкой' return' и использовать '_this._onAssetSelected' внутри карты. –