0001-01-01
childrenに引数渡したい時、render propを使えばできる。 functional componentでのやり方がわからなくていろいろハマったのでメモ
https://reactjs.org/docs/render-props.html
結論
// children
interface ChildrenSampleProps {
userName: string
}
const ChildrenSample: React.FC<ChildrenSampleProps> = ({ userName }) => {
return <>user: {userName}</>
}
// parent
interface ParentProps {
children: (props: ChildrenSampleProps) => JSX.Element
}
const Parent: React.FC<ParentProps> = ({ children }) => {
const userName = 'user!!!'
return <>{children({ userName })}</>
}
// sample to use
const Sample: React.FC = () => {
return (
<Parent>
{(props) => <ChildrenSample {...props} />}
</Parent>
);
}
childrenの型をchildren: (props: ChildrenSampleProps) => JSX.Element
のようにするといける