Setiap kali saya akhirnya menggunakan atribut gaya di luar className kerana tiada satu pun daripada contoh di bawah menggunakan gaya pada elemen React saya. Bolehkah anda menerangkan mengapa ini berlaku dan bagaimana saya boleh membetulkannya?
Saya telah membaca dokumentasi (https://tailwindcss.com/docs/content-configuration#dynamic-class-names) tetapi kes penggunaan saya ialah: pengguna memilih warna daripada pemilih warna dan kemudian saya memilih berdasarkan warna pada latar belakang Perubahan warna yang dipilih. Saya tidak boleh menghantar nilai "bg-[colorValue]" kepada setiap warna individu, jadi saya perlu menggabungkan nilai dengan "bg-[" selepas itu. Kerana saya tidak boleh memetakan semua warna ke dalam nama kelas yang lengkap.
const red500 = "red-500"; const red600Hex = "#dc2626"; const bgColor = "bg-[" + red600Hex + "]"; const bgColor2 = "bg-[" + "#dc2626" + "]"; function App() { return ( <> <h1 className={` bg-${red500} `}>Hello</h1> <h1 className={` bg-[${red600Hex}] `}>Hello</h1> <h1 className={` bg-${`[${red600Hex}]`} `}>Hello</h1> <h1 className={` ${bgColor} `}>Hello</h1> <h1 className={` ${bgColor2} `}>Hello</h1> </> ); }
Apabila rentetan literal templat berfungsi dengan betul, anda tidak perlu risau tentang penggabungan rentetan.
Taman Permainan Tailwind
Pautan di atas juga memberi saya amaran tentang penggabungan: "Bug Finder: Unexpected string concatenation of literals.eslint"
Saya malah menambah pilihan untuk mengawal warna h1 terakhir secara dinamik melalui keadaan: