【发布时间】:2022-01-11 09:07:37
【问题描述】:
我有一个超级简单的应用,比如
import React, { createContext } from 'react';
import { render } from 'react-dom';
import './style.css';
interface IAppContext {
name: string;
age: number;
country: string;
}
const AppContext = createContext<IAppContext | null>(null);
const App = () => {
const contentValue: IAppContext = {
name: 'Paul',
age: 21,
country: 'UK',
};
return (
<AppContext.Provider value={contentValue}>
<div>{name}</div>
</AppContext.Provider>
);
};
render(<App />, document.getElementById('root'));
我只是想使用上下文,但在 <div>{name}</div> 中出现错误
'name' is deprecated.(6385)
lib.dom.d.ts(19534, 5): The declaration was marked as deprecated here.
Type 'void' is not assignable to type 'ReactNode'.(2322)
index.d.ts(1183, 9): The expected type comes from property 'children' which is declared here on type 'DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>'
const name: void
@deprecated
这是使用上下文的正确方法吗?
是我使用打字稿的方式导致了这个错误吗?
【问题讨论】:
-
错误与上下文无关。
name来自哪里?
标签: reactjs typescript