在初始頁面加載時,我收到一個型別錯誤:
500
$rating.join is not a function
TypeError: $rating.join is not a function
這會在頁面更改后停止,例如,轉到關于頁面,然后回傳索引頁面,它將正確加載。
我在想這是一個操作順序問題?由 onMount 修復?只是不確定如何實作它。
// 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>
任何幫助將不勝感激,謝謝。
uj5u.com熱心網友回復:
我認為你的括號在最初的呼叫中是錯誤的
const rating = writable(
browser &&
(JSON.parse(sessionStorage.getItem("rating")) || [])
)
這意味著在 SSR 評級期間 false
你可能想改變它們:
const rating = writable(
(browser && JSON.parse(sessionStorage.getItem("rating"))) ||
[]
)
這樣當瀏覽器為假時,你會得到一個空陣列。
(尷尬的格式是嘗試使其可見發生的事情)
uj5u.com熱心網友回復:
console.log ($rating) 看看你得到了什么。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/358982.html
標籤:javascript 苗条的 苗条的
上一篇:將div傳遞給沒有孩子的道具反應
