reactjs - React Context - 使用 Provider 和 ContextName.Provider 这样的上下文
问题描述
我正在用打字稿创建一个上下文。
export const UserContext = createContext<
{ user: User; onChangeUser: (userId: string) => void } | undefined
>(undefined);
创建将收集子元素作为道具的提供者时,出现以下错误
export function UserProvider({ children }: Props) {
const [userId, setUserId] = useState<string | null>(null);
// this error: Cannot find namespace 'UserContext'.
return (
<UserContext.Provider
value={{
user,
onChangeUser: (userId: string) => {
setUserData(userId);
},
}}
>
{children}
</UserContext.Provider>
);
}
解决方案
您的文件需要.tsx
扩展名而不是.ts
.
在.ts
文件中,TypeScript 将<Type...>
在您尝试将以下表达式转换为Type...
类型时计算表达式,而不是将其作为 JSX 表达式处理。
推荐阅读
- linux - 读取输入而不指定输入长度
- c# - 使自托管 WCF 数据服务主机名感知
- java - 在 main 方法中使用 SwingUtilities.invokeLater()
- android - React Native:使不可编辑的文本框长可点击以显示自定义上下文菜单
- android - 如何在颤振的 Showcaseview 小部件中添加自定义图标(svg)?
- serilog - 环境变量在 Serilog 配置中不起作用
- linux - Ubuntu:Perl 误读带有西里尔字符的文件名
- php - PHP:在二维数组中查找一个或多个封闭区域
- laravel - 如何在 Laravel 中为许多不同的任务使用计划?
- yocto - 让yocto解压后下载更多源