JSX.Element не может быть присвоен типу ReactNode в функциональном HOC React

Мне нужно написать HOC, который будет включать мои компоненты в Suspense, я передам компонент и резервный вариант в качестве реквизита HOC.

мой помощник:

export const withSuspense = ({ Component, Fallback }: any)=> {

  return (props:any) => {
    return (
      <Suspense fallback = {<Fallback />}>
        <Component {...props} />
      </Suspense>
    );
  };
};

Затем мне нужно выполнить рендеринг в маршруте (реагировать-маршрутизатор v 6.15)

  <Route
    path = "messages"
    element = {withSuspense({MessagesPage,Loader})}
  />

Получил ошибку. Тип «(реквизит: любой) => JSX.Element» не может быть присвоен типу «ReactNode».

Я попытался определить реквизиты HOC как ReactNodes, но это не сработало. Есть идеи, пожалуйста?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
69
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

«JSX.Element» нельзя назначить типу «ReactNode» в функциональном HOC React.

element в новейшей версии react-router-dom ожидает ReactNode, а не функцию, которая возвращает JSX или ReactNode.

const Component = withSuspense({ MessagesPage, Loader });

<Route
  path = "messages"
  element = {<Component />}
/>

Другие вопросы по теме