React中使用Material Tailwind實作多選下拉選單的方法
P粉633733146
2023-09-06 09:29:26
<p>我正在嘗試使用Tailwind Material Select和Option元件建立多選下拉式選單。 </p>
<p>但是,每當我嘗試將陣列作為值傳遞給Select的value屬性時,會出現以下錯誤:</p>
<p>無效的屬性<code>value</code>,類型為<code>array</code>,提供給<code>MaterialTailwind.Select</code>,預期的類型是<MaterialTailwind.Select</code> ;string</code></p>
<p>我不想使用react-select,因為我整體設計都是使用Tailwind Material的。 </p>
<p>如果有人有想法,請告訴我如何用Tailwind Material實作多選下拉選單。 </p>
<pre class="brush:php;toolbar:false;"><Select
className='md:w-72'
size='lg'
label='Change Type'
multiple
value={selectedOptions}>
{options.map((o) => {
return <Option value={o.value}>{o.value}</Option>;
})}
</Select></pre>
<p>謝謝! </p>
看起來你正在使用的
MaterialTailwind.Select
元件希望value
屬性作為單選的字串。由於你想要使用Tailwind Material實現多重選擇功能,你可能需要以不同的方式處理。一種方法是將選定的選項作為一個選定值數組來管理在元件的狀態中。然後,在渲染選項時,你可以根據
selectedOptions
陣列中的值來有條件地套用selected
屬性到符合的選項。以下是你可能實現這一點的範例:
在這個範例中,
handleOptionToggle
函數用於在狀態陣列中切換選定的選項。每個Option
元件的selected
屬性是根據選項的值是否存在於selectedOptions
陣列中來設定的。請注意,這種方法可能不完全符合
MaterialTailwind.Select
元件的確切行為和樣式,但它提供了使用可用元件實作多重選擇功能的方法。你可能需要調整樣式和行為以適應你的專案設計和要求。