1

我有一个返回 JSX 元素数组的函数。当我将其传递给ReactDOM.render我时,我收到了上述错误。

wrappers.tsx

const FooterWithStore:React.FC = () => (
    <Provider store={store}>
      <FooterLangWrapper />
    </Provider>
)

const AppWithStore:React.FC = () => (
    <Provider store={store}>
      <LangWrapper />
    </Provider>
);

const WrapFooter = (WrappedComponent: React.FC) => [
    <WrappedComponent key="1" />,
    <FooterWithStore key="2" />
]

const App = WrapFooter(AppWithStore)
export default App

index.tsx

ReactDOM.render(
  <App />,
  document.getElementById('root')
);

4

1 回答 1

1

试试这个解决方案

const FooterWithStore:React.FC = () => (
    <Provider store={store}>
      <FooterLangWrapper />
    </Provider>
)

const AppWithStore:React.FC = () => (
    <Provider store={store}>
      <LangWrapper />
    </Provider>
);

const WrapFooter = (WrappedComponent: React.FC) => () => [
    <WrappedComponent key="1" />,
    <FooterWithStore key="2" />
]

const App = WrapFooter(AppWithStore)
export default App

您需要返回该函数,并且App常量包含调用后形成的对象WrapFooter。因此,您只需要使用一个闭包,以便在范围内WrappedComponent可用。WrapFooter

于 2020-12-21T14:27:58.187 回答