【问题标题】:'Provider' cannot be used as a JSX component\'Provider\' 不能用作 JSX 组件
【发布时间】:2022-08-22 10:35:51
【问题描述】:

我最近将我的 react-router-dom 更新到了 v6。新版本对使用的类型非常严格。当我在代码中使用 redux 提供程序时,我收到以下错误消息:

TS2786: \'Provider\' cannot be used as a JSX component.

但这对其他提供商来说很好:

root.render(
  <FirebaseAppProvider firebaseConfig={firebase}>
    <Provider store={store}>
      <BrowserRouter>
        <Routes>
          <Route path=\"/\" element={<div>hello</div>} />
        </Routes>
      </BrowserRouter>
    </Provider>
  </FirebaseAppProvider>,
);

除了ts-ignore,你有什么解决方案吗?

  • 如果您对 Redux 提供程序有疑问,那很可能不是 react-router-dom 的错。您的代码中的Provider 是什么?能否提供更完整的code example?如果可能的话,你能提供一个跑步重现我们可以实时检查和调试的错误/警告的代码和框演示?

标签: reactjs redux react-router


【解决方案1】:

当您通过依赖项安装了多个版本的@types/react 时,这似乎最近发生了。

可以在这里找到一些解决方法:https://github.com/facebook/react/issues/24304#issuecomment-1094565891

【讨论】:

    【解决方案2】:

    这是 React 18 的问题。 可以加 {/* // @ts-ignore */} 忽略它。 但不推荐

    【讨论】:

      猜你喜欢
      • 2021-06-02
      • 2022-06-20
      • 2021-02-20
      • 2021-09-13
      • 1970-01-01
      • 2022-06-11
      • 2022-06-14
      • 2022-10-21
      • 2022-06-15
      相关资源
      最近更新 更多