Тип элемента JSX «Компонент» не имеет никаких сигнатур конструкции или вызова

#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. Вам нужно понять концепцию компонентов высокого порядка. Из второй функции со стрелкой выводится сгенерированный компонент, созданный компонентом высокого порядка.