如果我有如下界面:
interface Example {
Component: React.ReactElement;
componentProperties: typeof Example.Component;
}
有沒有辦法獲取該組件傳入的屬性型別。所以說我傳入一個自定義組件,如下所示:
const Text = ({ value: string }) => <p>{value}</p>;
我想要相等的 componentProperties 的型別 { value: string }
我想我正在尋找更接近于此的東西,其中組件的型別決定了 componentProperties 的型別:
interface Example<T> {
Component: () => React.ReactElement;
componentProperties: T;
}
const Comp = ({ value }: { value: string}) => <p>{value}</p>;
const blah = ({ Component, componentProperties }: Example<typeof Component>) => {
return <Component {...componentProperties} />;
};
blah({
Component: Comp,
componentProperties: { value: 'test' }
});
這個例子充滿了錯誤,這就是我遇到麻煩的原因。
uj5u.com熱心網友回復:
interface Example<T> {
Component: React.ReactElement;
componentProperties: T;
}
uj5u.com熱心網友回復:
一切看起來都不錯,除了廢話,我猜
那里你得到錯誤。
這就是我在我的專案中解決這個問題的方法。
const blah = ({ Component, componentProperties }: Example<typeof Component>) => {
var Cm = Component as any;
return <Cm {...componentProperties} />;
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/419272.html
標籤:
上一篇:反應組件不在地圖回圈中呈現
