reactjs - React.memo não está disponível ao trabalhar com Typescript?
Estou tentando usar o React.memo assim:
const Node: React.memo<Props> = props => {Mas estou recebendo um erro dizendo:
Namespace '../ui/node_modules/@types/react/index.d.ts"' has no exported member 'memo'.Mas eu posso ver a função Memo dentro de index.d.ts:
function memo<P extends object>(
Component: SFC<P>,
propsAreEqual?: (prevProps: Readonly<PropsWithChildren<P>>, nextProps: Readonly<PropsWithChildren<P>>) => boolean
): NamedExoticComponent<P>;
function memo<T extends ComponentType<any>>(
Component: T,
propsAreEqual?: (prevProps: Readonly<ComponentProps<T>>, nextProps: Readonly<ComponentProps<T>>) => boolean
): MemoExoticComponent<T>;
O que estou perdendo aqui?
Resposta #1
Como mencionado nos comentários, memo não é uma declaração de tipo. Você bagunçou um pouco a sua sintaxe
const Node: React.FC<Props> = React.memo(props => {
return(
<div>
memoized
</div>
)
})
Observe que React.FC é uma declaração de um componente funcional. Como você está envolvendo-o em um memo, você pode precisar alterar o tipo. Mas, pessoalmente, eu não precisei.
