Я создаю приложение Trivia, и у меня есть элемент <h1>
, который меняется каждые 10 секунд. Я хочу сопоставить ширину компонента группы переключателей (b-form-group
- это Bootstrap - Vue компонент ) с шириной элемента <h1>
. Примерно так:
Я пытался использовать watchers
для обновления buttonWidth
всякий раз, когда изменяется значение question
. Но с этим кодом ширина группы кнопок, кажется, соответствует ширине предыдущего вопроса, а не текущего. Я также пробовал другие свойства, такие как updated
, mounted
, created
. Я просто не могу заставить его работать правильно. Есть ли более простой способ сопоставить ширину двух элементов?
<template>
<div>
<div id="question">
<h1 ref="quest">{{ question }}</h1>
</div>
<b-form-group>
<b-form-radio-group :style=getWidth
ref="opts"
:options="options"
buttons
stacked
button-variant="outline-primary"
size="lg"
name="radio-btn-stacked"
></b-form-radio-group>
</b-form-group>
</div>
</template>
Под моим сценарием у меня есть:
export default {
props: ['question', 'options'],
data() {
return {
buttonWidth: '0 px',
};
},
methods: {
},
watch: {
question() {
// console.log('Updating button width to ', this.$refs.quest.clientWidth);
this.buttonWidth = `width: ${this.$refs.quest.clientWidth}px;`;
},
// immediate: true,
},
computed: {
getWidth() {
return this.buttonWidth;
},
},
};