Задать вопрос
@Tereverda

Vue ошибка в компоненте withDirectives can only be used inside render functions?

В документации есть пример селекта я хочу создать по сути то же самое, но внутри компонента и получаю ошибку [Vue warn]: withDirectives can only be used inside render functions.

Насколько я понял v-model почему, то перестает работать в компонентах.
Хотя и переменная и шаблон отображения внутри одного компонента.

import BoxSelectOptions from '/resources/js/components/BoxSelectOptions.vue'

Vue.createApp({
    components: { BoxSelectOptions },
    data () {
        return {
            // Данные из формы
            fefco: '0201',
            options: '', // начальное значение selected
        }
    },
    methods: {},
    mounted: function () {}
}).mount('#app');


// Тут получаю данные из корневого приложения в input v-model="fefco" и "options"
<box-select-options
 v-model:fefco="fefco"
 v-model:options="options" // начальное значение selected
>
</box-select-options>


<script>
    export default {
        props: ['fefco', 'options',],
        data() {
            return {
                // Данные из формы
                selected: '',
            }
        },
        created() {
            this.selected = this.options; // тут из пропса задаю начальное значение селекту
        },
        methods: {
           // из-за того что v-model не работает, получаю данные из события
            updateSelect(event) {
                this.selected = event.target.value;
            }
        }
    }
</script>


<template>
    <p>
        {{ selected }} при изменении срабатывает, по событию, начальное значение из пропса не передается
    </p>

// опции статичные, они скрываются или отображаются в зависимости от значения пропса fefco
    <select class="form-select" name="options" v-model="selected" @change="updateSelect">
        <option value="options_no" >Без доп.опций</option>

        <!-- Слоттер -->
        <option v-if="fefco == '0200' || fefco == '0201' || fefco == '0203'" value="vyrubka">Вырубка ручек</option>
        <option v-if="fefco == '0200' || fefco == '0201' || fefco == '0203'" value="skoby">Сшивка скобами</option>
        <option v-if="fefco == '0200' || fefco == '0201' || fefco == '0203'" value="profile_c">Профиль С</option>

        <!-- 0410 -->
        <option v-if="fefco == '0410'">Склейка по длинной стороне</option>

        <!-- 0427 -->
        <option v-if="fefco == '0427'" value="ruchka">Пластиковая ручка</option>

        <option value="bely">Печать белым</option>
    </select>
</template>


1. Не понимаю почему не работает v-model
2. Как задать value, чтобы значения формы уходили в POST
  • Вопрос задан
  • 50 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы