#vuejs3 #vue-reactivity
Вопрос:
Мне трудно получить доступ к значениям внутри тестового свойства. Когда я выполняю текущий тест. room., я получаю «Прокси { : {…}, : {…} }» как значение, но я хочу прочитать массив, как показано в isButtonDisabled().
Не уверен, в чем именно заключается хитрость, чтобы сделать это внутри функции setup/isButtonDisabled.
Я могу сделать current.room.title и без проблем, но в тот момент, когда у меня есть объект, я не знаю, как получить его ценность
Спасибо
export default defineComponent({
name: "App",
setup() {
const roomId = ref(5);
const current = reactive({
room: {_id: 1, title: 'title', test: [{_id: 4}, {_id: 3}]},
});
function isButtonDisabled(optionIdx: number) {
console.log(current.room.test);
console.log(current.room.test[optionIdx]);
}
return {
current,
};
},
});
Ответ №1:
Ключом здесь было вернуть ваш метод в шаблон (если вы хотите вызвать его оттуда). Ваш синтаксис для доступа к элементам был правильным.
const { createApp, reactive, ref } = Vue;
const app = createApp({
setup() {
const roomId = ref(5);
const current = reactive({
room: {_id: 1, title: 'title', test: [{_id: 4}, {_id: 3}]},
});
function isButtonDisabled(optionIdx) {
console.log(current.room.test[optionIdx]);
console.log(current.room.test[optionIdx]._id, ' value');
}
return {
isButtonDisabled
}
}
});
app.mount("#app");
<script src="https://unpkg.com/vue@next"></script>
<div id="app">
<button @click="isButtonDisabled(0)">test: _id: 0</button>
<button @click="isButtonDisabled(1)">test: _id: 1</button>
</div>