【发布时间】:2022-01-21 13:48:41
【问题描述】:
您好,我是打字稿的新手,我有工作要做。 我需要制作动态类,类似于下面的代码。
import React, { ReactNode, useState } from "react";
interface Props {
text: ReactNode;
}
const ListItem = ({ text }: Props) => {
let [showMore, setShowMore] = useState(false);
return (
<div className="item">
<div>
<div className={`text ${showMore ? "active" : ""}`}>{text}</div>
</div>
<button onClick={() => setShowMore((s) => !s)}>Show more</button>
</div>
);
};
但是我需要在这段代码中实现它,我不知道该怎么做,因为我不理解编写它的人的这种语法。 当我尝试实现以前的代码时,我遇到了用这种语法渲染的反应钩子的问题。
希望你能理解我的问题
type DeliveryBranchHitProps = {
hit: SearchIndex.DeliveryBranch;
};
const DeliveryBranchHit = ({
hit: delivery_branch,
}: DeliveryBranchHitProps): JSX.Element => (
<>
<div className={`branch-opening-week ${showMore ? "active" : ""}`}>
<p>
<span className="branch-day">Monday:</span>
{delivery_branch.opening_monday}
</p>
<button onClick={() => setShowMore((s) => !s)}>Show more</button>
</div>
</>
);
【问题讨论】:
-
“我在这种语法中渲染反应钩子时遇到问题”是什么意思,你能给我们举个例子吗?
-
它给了我无效的钩子调用错误:无效的钩子调用。钩子只能在函数组件的主体内部调用。
标签: javascript html reactjs typescript