我正在使用React和Next.js创建一个网站。在我的网站中,我有一个名为section.tsx的组件,它使用给定的props呈现文章的一个子部分。我希望该组件接受一个“align”属性。我希望在div元素的className中执行一个三元运算符,检查align属性是否等于“right”。如果为真,它应该设置一个tailwind css类结束。并且如果它为假,则它应该将其设置为开始。
下面是我的代码:
function Section({ idVal, text, title, align }) {
return (
<div
id={idVal}
className={`mt-12 w-full h-fit text-` + {align} + `grid place-items-` + {align == `right` ? `end` : `start`}}
>
<div className="text-4xl text-white text-end mt-20 mr-[15vw] border-b-[1px] border-b-slate-500 w-96 pl-5 rotate-2">
<h2 className="mr-[4vw] -rotate-2">{title}</h2>
</div>
<p className="text-white w-[38vw] mr-[28vw] mt-8 whitespace-pre-line">
{text}
</p>
</div>
);
}
export default Section;
但是,上面的代码会引发以下错误:, expected
(在==上)、Identifier expected
和Expression expected
。
1条答案
按热度按时间jv4diomz1#
你已经很接近了。把你的
{}
换成()
来计算一个表达式。在JSX中,
{}
让您能够跳到JavaScript中对表达式求值,一旦进入{}
,就像编写普通的JavaScript一样:请注意,确定您打算对
{align}
执行什么操作,因为它创建了一个对象,然后在连接该对象时将其转换为字符串。我会这么写: