reactjs - Hur kan jag ge props till en TypeScript-komponent som skickas som en prop i React?
Jag har en komponent 'Modal.tsx' som jag vill använda innehåll från en annan komponent, liknande nedan.
<Modal onClose={() => setShowModal(false)} Content={ConfirmationContent} />
ConfirmationContent finns i sin egen ConfirmationContent.tsx-fil som importeras till Modal.tsx-filen.
Jag kan visa innehåll från ConfirmationContent-komponenten framgångsrikt inom Modal.tsx
type Props = {
showModal : boolean,
Content: React.ElementType,
}
const Modal = ({showModal, Content} : Props) => {
return (
<div><Content /></div>
)
}
Men det jag verkligen skulle vilja göra är att skicka props från föräldern av Modal.tsx till ConfirmationContent, typ så här ..
<Modal onClose={() => setShowModal(false)} Content={ConfirmationContent={text='hotpotato' closeModal={false} } />
Men jag har svårt att förstå hur man gör detta - Kan det vara React.ElementType?
All hjälp eller rådgivning här skulle verkligen uppskattas.
Svar #1
Ändra innehållet till barn på detta sätt:
type Props = {
showModal : boolean,
children?: React.ReactNode,
}
const Modal = ({showModal, children} : Props) => {
return (
<div>{children}</div>
)
}
Och sedan kan du skicka props som du vill på det här sättet:
<Modal onClose={() => setShowModal(false)}>
<ConfirmationContent onClose={() => {//...}} text="foo" >
</Modal>
