首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React.Context指的是UMD全局

React.Context指的是UMD全局
EN

Stack Overflow用户
提问于 2022-10-10 13:13:54
回答 1查看 95关注 0票数 1

我创建了以下context.tsx:

代码语言:javascript
复制
import { createContext } from 'react';

export interface LibsAndComponentsInterface {
  data: unknown[];
}

export const LibsAndComponentsContext = createContext<
  LibsAndComponentsInterface | undefined
>(undefined);

并在我的包装组件中使用它:

代码语言:javascript
复制
import { ReactNode, useContext, useEffect, useMemo, useState } from 'react';
import { LibsAndComponentsContext } from 'core/context/dataContext';
import { useApiService } from 'common/hooks/useApiService';
import { useAuth } from 'common/contexts/Authentication';

// Wrap your App component with this
export function LibsAndComponentsProvider({
  children,
}: {
  children: ReactNode;
}) {
  const [libs, setLibs] = useState<unknown[]>([]);
  const [components, setComponents] = useState<unknown[]>([]);

  const { isAuthenticated } = useAuth();
  const { sendRequest } = useApiService();

  useEffect(() => {
    .....
  }, []);

  const ctxValue = useMemo(
    () => ({
      data: [...libs, ...components],
    }),
    [libs, components],
  );

  return (
    <LibsAndComponentsContext.Provider value={ctxValue}>
      {children}
    </LibsAndComponentsContext.Provider>
  );
}

export function useLibsAndComponents() {
  const ctx = useContext(LibsAndComponentsContext);

  if (ctx == null) {
    throw new Error(
      'useLibsAndComponents must be inside LibsAndComponentsProvider',
    );
  }

  return ctx;
}

我现在得到了<LibsAndComponentsContext.Provider value={ctxValue}>返回的一个错误

'React‘指的是UMD全局文件,但当前文件是一个模块。考虑添加一个导入。使用JSX时,“‘React”必须在作用域内

我看不出我指的是什么模块,有人能帮我指出错误吗?

EN

回答 1

Stack Overflow用户

发布于 2022-10-10 14:02:14

添加import React from "react";是令人尴尬的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74015541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档