En la carga de la página inicial, aparece un error de tipo:
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? ¿Reparado por 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))) // Filters Component <script> import {rating} from "../stores/items"; const ratings = [1, 2, 3, 4, 5]; </script> <div class="flex justify-center"> <!-- Ratings Filter --> <div class="multiselect"> <div class="selectBox rounded-sm shadow2 m-1 px-1" on:click={multiselect}> <select> <option >{#if $rating.length === 0} Rating: {:else} {$rating.join(", ")} {/if}</option > </select> <div class="overSelect dropdown" /> </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>Cualquier ayuda será apreciada, gracias.
console.log ($rating) y vea lo que obtiene.
Creo que tus paréntesis están mal en la llamada inicial.
const rating = writable( browser && (JSON.parse(sessionStorage.getItem("rating")) || []) ) Esto significaría que durante SSR la calificación será false
Probablemente quieras cambiarlos de lugar:
const rating = writable( (browser && JSON.parse(sessionStorage.getItem("rating"))) || [] )De esta manera, cuando el navegador sea falso, obtendrá una matriz vacía.
(El formateo incómodo es intentar que sea visible lo que sucede)