#reactjs #typescript
Вопрос:
У меня есть код ниже
const pageArea = (Component:ReactNode,title:string) => ({ ...props }) => {
return (
<>
<div>
{ Component amp;amp; ( <Component {...props} /> )}
</div>
</>
);
};
Его ошибка при выбрасывании
Тип элемента JSX «Компонент» не имеет никаких сигнатур конструкции или вызова
Ответ №1:
Поскольку ReactNode-это узел, вы не можете называть его так, как вы называете компонент.
Я полагаю, вы имеете в виду, что Компонент-это компонент реакции. Итак, чтобы исправить это, пожалуйста, измените тип с ReactNode
на React.ComponentType
ИЛИ React.ComponentClass
ИЛИ React.FC
(что бы вы ни хотели).
Тип элемента JSX «Компонент» не имеет никаких конструкций или сигнатур вызовов reactjs
Комментарии:
1. Спасибо, это сработало,не могли бы вы помочь мне понять синтаксис const pageArea = (Компонент:ReactNode,заголовок:строка) => ({ … реквизит }) => {}, компонент и заголовок являются парами этой функции, тогда что есть … реквизит, или вы можете дать мне какую-нибудь ссылку с аналогичным синтаксисом для понимания
2. Есть несколько ключевых слов, которые могли бы вам помочь: компонент высокого порядка реакции (HOC), Компонент функции реакции, тип реквизита реакции. Несколько ссылок для вас: medium.com/@jrwebdev/… , freecodecamp.org/news/…
3. Спасибо за эти ссылки, но все еще не могу найти этот синтаксис, например,если я скажу, что это своего рода функция со стрелкой, то обычный синтаксис будет похож на const pageArea = (Компонент:ReactNode, заголовок:строка) = > {},, но как дополнительный ({ … реквизит }) => работы
4. Вам нужно понять концепцию компонентов высокого порядка. Из второй функции со стрелкой выводится сгенерированный компонент, созданный компонентом высокого порядка.