reactjs react js和tailwind中的背景颜色不工作

1tu0hz3e  于 2023-03-17  发布在  React
关注(0)|答案(3)|浏览(210)

我需要在使用顺风css的React项目业务部分,所以如果这部分是流行的背景必须改变颜色,所以我需要做的背景颜色是动态的,但在这行<div className{flex flex-col p-6 mx-auto max-w-lg text-center bg-[#${if_Popular ? "f8ae51" : "fff"}] rounded-[30px] border border-gray-100 shadow }>不工作我怎么能解决这个问题,我问chatgpt,但所有的答案不工作,我不明白什么是错误的:
我的密码是:

import Image from "next/image";
import React from "react";
import { logo } from "../assets";

const Business = ({
  clients,
  type,
  description,
  price,
  color,
  if_Popular,
  included,
}) => {
  return (
    <>
      <section className="flex flex-1 font-poppins">
        <div className=" mx-auto max-w-screen-xl  lg:px-6">
          <div className="">
            <div
              className={`flex flex-col p-6 mx-auto max-w-lg text-center bg-[#${if_Popular ? "f8ae51" : "fff"}] rounded-[30px] border border-gray-100 shadow `}
            >
              <div className="flex flex-row ">
                <div>
                  <Image className="h-18 w-14" src={logo} />
                </div>
                <div className="flex flex-col ml-2 py-2">
                  <p className="font-semibold text-[#6F6C90] text-[12px]">
                    for {clients}
                  </p>
                  <h3 className="mb-4 text-2xl font-semibold">{type}</h3>
                </div>

                <div className="flex flex-1 pl-4 justify-end">
                  {if_Popular && (
                    <p className="font-poppinsfont-semibold rounded-lg p-3 h-[6vh] justify-center border-[#ffffff33] bg-[#ffffff33] text-[#fff]">
                      Popular
                    </p>
                  )}
                </div>
              </div>
              <div className="flex">
                <p className="">{description}</p>
              </div>
              <div className="flex justify-start items-baseline my-4">
                <span
                  className={`mr-2 text-[#${
                    if_Popular ? `fff` : `160e4d`
                  }]  text-5xl font-poppins font-semibold`}
                >
                  $ {price}
                </span>
                <span className={`text-[#${if_Popular ? `000` : `b3b3b3`}] `}>
                  /monthly
                </span>
              </div>
              <div
                className={`text-left font-poppins mb-6 text-[#${
                  if_Popular ? `fff` : `160e4d`
                }] `}
              >
                <p className="font-semibold text-xl ">What’s included</p>
              </div>
            </div>
          </div>
        </div>
      </section>
    </>
  );
};

export default Business;
7kqas0il

7kqas0il1#

因为你使用的是JSX(React),所以不要像这样写条件,而应该这样写:

<div className={`flex flex-col p-6 mx-auto max-w-lg text-center bg-${if_Popular ? "f8ae51" : "fff"} rounded-[30px] border border-gray-100 shadow`}>
 {/* ... */}
</div>
vhmi4jdf

vhmi4jdf2#

顺风不这样工作你可以做的是:

className={`flex flex-col p-6 mx-auto max-w-lg text-center ${if_Popular ? "bg-[#f8ae51]" : "bg-[#fff]"} rounded-[30px] border border-gray-100 shadow `}

必须传递所有类名。

busg9geu

busg9geu3#

以这种方式定义的动态颜色将不起作用。Tailwind需要整个类在一起,所以你可以做如下操作:

${if_Popular ? "bg-[#f8ae51]" : "bg-[#fff]"}

bg-[#${if_Popular ? "f8ae51" : "fff"}]这将不起作用,因为编译tailwind必须精确地知道要添加的所有类。

相关问题