React와 함께 TypeScript를 사용 React.Props
하면 컴파일러가 모든 반응 구성 요소 소품이 자식을 가질 수 있음을 알기 위해 더 이상 확장 할 필요가 없습니다 .
interface MyProps { }
class MyComponent extends React.Component<MyProps, {}> {
public render(): JSX.Element {
return <div>{this.props.children}</div>;
}
}
그러나 상태 비 저장 기능 구성 요소의 경우에는 해당되지 않는 것 같습니다.
const MyStatelessComponent = (props: MyProps) => {
return (
<div>{props.children}</div>
);
};
컴파일 오류를 내 보냅니다.
오류 : (102, 17) TS2339 : 'MyProps'유형에 'children'속성이 없습니다.
나는 컴파일러가 바닐라 함수가 children
props 인자에 주어질 것이라는 것을 알 수있는 방법이 정말로 없기 때문이라고 생각합니다 .
그렇다면 질문은 TypeScript의 상태 비 저장 기능 구성 요소에서 자식을 어떻게 사용해야합니까?
의 이전 방법으로 돌아갈 수는 MyProps extends React.Props
있지만 Props
인터페이스는 deprecated로 표시되며 상태 비 저장 구성 요소에는 Props.ref
내가 이해 하는 대로 a가 없거나 지원하지 않습니다 .
따라서 children
소품을 수동으로 정의 할 수 있습니다.
interface MyProps {
children?: React.ReactNode;
}
첫째 : ReactNode
올바른 유형입니까?
둘째 : 자식을 선택 사항 ( ?
) 으로 작성해야합니다. 그렇지 않으면 소비자가 해당 구성 요소 ( ) children
의 속성 이라고 생각 <MyStatelessComponent children={} />
하고 값이 제공되지 않으면 오류가 발생합니다.
뭔가 빠진 것 같습니다. 내 마지막 예제가 React에서 자식과 함께 상태 비 저장 기능 구성 요소를 사용하는 방법인지에 대한 명확성을 제공 할 수 있습니까?
@types