Quiero generar ID aleatorios para mis campos de entrada dentro de un bucle v-for:
<div v-for="(data) in form" :key="data.attribute"> <input type="date" :min="today" :id="_ + uuid()" :name="data.attribute" :placeholder="data.default_value" :readonly="data.render_type == 'readonly'" v-model="data.value" @input.prevent="updateOuter($event, data.refresh, 'due_date')"...usando uuid:
const uuid = () => { return v4(); }; Ahora, al cambiar el valor de entrada, la ID se cambia cada vez que se llama a uuid() . ¿Cómo generaría ID fijos para el campo de entrada usando uuid? El objeto de datos del formulario no proporciona propiedades únicas que podría usar porque los elementos podrían aparecer varias veces en la página.
Creo que deberías crear objetos adicionales como ids en datos y generar uuid allí como a continuación;
<div v-for="(data) in form" :key="data.attribute"> <input type="date" :min="today" :id="ids[data.attribute]" :name="data.attribute" /> </div> { data(){ const ids = form.reduce((res, item) => { res[item.attribute]= v4(); return res; }, {}); return { ids, } } }