es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tipo de error después de agregar localstorage para almacenar.

En la carga inicial de la página obtengo un Tipo de Error:

500
$rating.join no es una función
TypeError: $rating.join no es una función

Esto se detiene después de un cambio de página, por ejemplo, al ir a la página acerca de y luego volver a la página de índice, se cargará correctamente.

Estoy pensando que es un problema de orden de operaciones. ¿Se solucionó con onMount? Simplemente no estoy seguro de cómo implementarlo.

“`
// Store
export const rating = writable(browser && (JSON.parse(sessionStorage.getItem("rating")) || []))
rating.subscribe((val) => browser && sessionStorage.setItem("rating", JSON.stringify(val)))

// Componente de Filtros

<script>
import {rating} from "../stores/items";
const ratings = [1, 2, 3, 4, 5];
</script>

<div class="flex justify-center">
<!– Filtro de clasificación –>
<div class="multiselect">
<div class="selectBox rounded-sm shadow2 m-1 px-1" on:click="{multiselect}">
<select>
<option>{#if $rating.length === 0}
Clasificación:
{:else}
{$rating.join(", ")}
{/if}</option>
</select>
<div class="overSelect dropdown"></div>
</div>
<div class="checkboxes" id="ratingDropdown">
{#each ratings as ratings}
<div class="flex">
<input type="checkbox" id="{ratings}" name="typeValues" bind:group="{$rating}" value="{ratings}" class="dropdown">
<label for="{ratings}" class="dropdown">{ratings}</label>
</div>
{/each}
</div>
</div>
“`

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema es que $rating es un arreglo, pero estás intentando usar el método join en él, el cual solo está disponible en cadenas de caracteres. Para solucionar esto, podrías utilizar $rating.map(String).join(', ') en su lugar. Esto convertirá cada elemento en el arreglo a una cadena de caracteres antes de unirlos juntos.

Comments are closed.