Cara menggunakan Material Tailwind untuk melaksanakan menu lungsur turun berbilang pilihan dalam React
P粉633733146
P粉633733146 2023-09-06 09:29:26
0
1
590
<p>Saya cuba membina menu lungsur turun berbilang pilihan menggunakan komponen Tailwind Material Select dan Option. </p> <p>Walau bagaimanapun, apabila saya cuba menghantar tatasusunan sebagai nilai kepada sifat nilai Select, saya mendapat ralat berikut: </p> <p>Harta <kod>nilai</kod> jenis <kod>tatasusunan</kod>, diberikan kepada <kod>MaterialTailwind.Select</kod>, jenis yang dijangkakan ialah <kod> /kod></p> <p>Saya tidak mahu menggunakan react-select kerana reka bentuk keseluruhan saya menggunakan Bahan Tailwind. </p> <p>Jika sesiapa mempunyai idea, sila beritahu saya cara melaksanakan menu lungsur turun berbilang pilihan dengan Bahan Tailwind. </p> <pre class="brush:php;toolbar:false;"><Pilih className='md:w-72' saiz='lg' label='Tukar Jenis' pelbagai value={selectedOptions}> {options.map((o) =>{ kembalikan <Nilai pilihan={o.value}>{o.value}</Option>; })} </Pilih></pra> <p>Terima kasih! </p>
P粉633733146
P粉633733146

membalas semua(1)
P粉615829742

Nampaknya anda menggunakan atribut MaterialTailwind.Select组件希望value sebagai rentetan untuk pemilihan radio. Memandangkan anda ingin melaksanakan fungsi berbilang pilihan menggunakan Bahan Tailwind, anda mungkin perlu mengendalikannya secara berbeza.

Salah satu cara ialah mengurus pilihan yang dipilih sebagai tatasusunan nilai terpilih dalam keadaan komponen. Kemudian, apabila memberikan pilihan, anda boleh memadankan pilihan berdasarkan atribut selectedOptions数组中的值来有条件地应用selected.

Berikut ialah contoh cara anda boleh mencapai ini:

import React, { useState } from 'react';
import { Select, Option } from '@material-tailwind/react';

const MyMultiSelect = () => {
  const [selectedOptions, setSelectedOptions] = useState([]);
  
  const options = [
    { value: '选项1' },
    { value: '选项2' },
    { value: '选项3' },
    // ... 其他选项
  ];

  const handleOptionToggle = (optionValue) => {
    if (selectedOptions.includes(optionValue)) {
      setSelectedOptions(selectedOptions.filter(val => val !== optionValue));
    } else {
      setSelectedOptions([...selectedOptions, optionValue]);
    }
  };

  return (
    <Select
      className='md:w-72'
      size='lg'
      label='更改类型'
      multiple
    >
      {options.map((o) => (
        <Option
          key={o.value}
          value={o.value}
          selected={selectedOptions.includes(o.value)}
          onClick={() => handleOptionToggle(o.value)}
        >
          {o.value}
        </Option>
      ))}
    </Select>
  );
};

export default MyMultiSelect;

Dalam contoh ini, handleOptionToggle函数用于在状态数组中切换选定的选项。每个Option组件的selected属性是根据选项的值是否存在于selectedOptions ditetapkan dalam tatasusunan.

Sila ambil perhatian bahawa pendekatan ini mungkin tidak sepadan dengan gelagat dan penggayaan yang tepat bagi komponen MaterialTailwind.Select, tetapi ia menyediakan cara untuk melaksanakan fungsi berbilang pilihan menggunakan komponen yang tersedia. Anda mungkin perlu melaraskan gaya dan tingkah laku agar sesuai dengan reka bentuk dan keperluan projek anda.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan