Я сделал компонент Таблица и внутри каждого столбца я поместил Функция возврата синтаксиса jsx для рендеринга HTML, но внутри возврата рендеринга я хочу изменить данные компонента с помощью this.firstName = item ; (элемент находится внутри функции рендеринга), но я не могу получить доступ к это.
Как я могу получить доступ к это внутри возврата рендеринга в Vue.js?
вот мой код:
field: 'id',
caption: '',
sortable: false,
render: (item) => (h) => {
return (
<td class = "uk-text-middle uk-text-center">
<div class = "uk-inline">
<span class = "more-option" uk-icon = "icon: more"></span>
<div class = "uk-padding-small" uk-dropdown = "mode: click">
<ul class = "uk-nav uk-dropdown-nav uk-text-right">
<li>
<button onClick = { () => {console.info(this)} }>
<span class = "uk-margin-small-left" uk-icon = "icon: file-edit"></span>
edit
</button>
</li>
<li>
<a href = "#">
<span class = "uk-margin-small-left" uk-icon = "icon: trash"></span>
delete
</a>
</li>
</ul>
</div>
</div>
</td>
);
}





Поскольку вы используете вложенные анонимные функции, внутренняя область функций this отличается.
Вы можете привязать this или назначить this другой переменной в верхней функции
(item) => {
const self = this;
return (h) => (
<button onClick = { () => {console.info(self)} }>
<span class = "uk-margin-small-left" uk-icon = "icon: file-edit"></span>
edit
</button>
);
}