You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用React Context Provider渲染数据时遇构造/调用签名错误

问题解决:JSX Element type 'Context' does not have any constructor or call signatures

错误原因

你在App.tsx里直接把createContext生成的Context对象当作JSX组件渲染了,但这个Context只是上下文容器,并非可直接使用的React组件,因此触发该错误。

修正步骤

  1. 修改App.tsx的导入与组件使用
    将原来导入的Context替换为你自定义的Provider组件,用它包裹需要共享数据的子组件:
// App.tsx
import { Provider } from './interfaces/cardContext';

const App = () => {
  return (
    <div className="App">
      <BrowserRouter>
        <Navbar />
        <Provider>
          <RestaurantDetails />
        </Provider>
        <Footer />
      </BrowserRouter>
    </div>
  );
};
export default App 
  1. 子组件消费Context数据示例(可选)
    若要在RestaurantDetails中获取共享的restaurants数据,需使用useContext钩子:
// RestaurantDetails.tsx
import { useContext } from 'react';
import { Context } from './interfaces/cardContext';

const RestaurantDetails = () => {
  const { restaurants } = useContext(Context);

  return (
    <div>
      {restaurants.map(restaurant => (
        <div key={restaurant.id}>{restaurant.name}</div>
      ))}
    </div>
  );
};

你的Context文件代码逻辑是正确的,已经封装了Context.Provider并在Provider组件中处理了数据获取,只需在App中正确使用该Provider组件即可。

内容的提问来源于stack exchange,提问作者Jovan Tanchevski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 06:15:29