所以我发现我实际上用“!”运算符修复了 5-6 个其他问题,所以不要删除重复的问题,但我不明白的是变量不是对象。这就是上下文;
import { createContext } from "react";
interface PlanetInfos {
planetName: string;
radius: string;
distanceFromSun?: string;
numberOfMoons?: string;
averageTemperature: string;
svg: string;
}
type ContextProps = {
miliSeconds: number;
setmiliSeconds: any;
planetInfos: PlanetInfos[];
};
const PlanetContext = createContext<Partial<ContextProps>>({});
export default PlanetContext;
例如,这是我定义毫秒的 App.js;
const App: React.FC = () => {
const [miliSeconds, setmiliSeconds] = useState(10000);
return (
<PlanetContext.Provider
value={{
miliSeconds,
setmiliSeconds,
planetInfos,
}}
>
<div className="App">
<SideBar />
<Planets />
</div>
</PlanetContext.Provider>
);
};
export default App;
因此,无论我在哪里执行此操作并在组件中的某处使用毫秒;
const { miliSeconds } = useContext(PlanetContext);
它说“对象可能未定义”,这对我来说没有意义。因为它从来都不是一个对象。那么除了在应用程序中随处放置感叹号之外,还有什么解决方法吗?