我正在使用帶有 Typescript 的 react 17.0.2。我正在嘗試setLoading從父組件 ( App) 傳遞到子組件 ( About),以便App可以從About.
interface AboutProps {
setLoading: (arg: boolean | undefined) => void
}
const About: React.FC<AboutProps> = ({ setLoading }) => {
const fields = [
...
];
const { data, loading, error } = useFetch('About', fields);
useEffect(() => setLoading(loading), [loading]);
return (
<div className="aboutComponent">
<div>
<Title title={data.custom_title} />
<Card
text={data.body}
>
<Skills
skills_={data.skills}
skillYears_={data.skill_years}
columns_={data.n_skills_columns}
/>
</Card>
</div>
</div>
);
};
然而,ESLint 抱怨setLoading第 1 行缺少 props 驗證。該setLoading函式是從這里的父組件傳遞的:
const App = () => {
const [loading, setLoading] = useState<any>(false);
return (
<div>
<About setLoading={setLoading} />
</div>
);
};
我以前沒有看到過這個錯誤,我不知道該怎么做,因為我已經用AboutPropsinterface輸入了 props 。
uj5u.com熱心網友回復:
我也是 TypeScript 的新手,但我相信你可以這樣做:
const About = ({ setLoading }:AboutProps) => {
此外,React TypeScript Cheatsheet有一個關于不鼓勵使用 React.FC 的部分。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/405714.html
標籤:
上一篇:如何將道具結合到地圖狀態
