【发布时间】:2026-02-17 17:15:02
【问题描述】:
我对 typescript 和 react 结合起来有点陌生。所以在这里我有上下文和简单的模态函数和状态,我想在全局范围内使用它们,但它不允许我在 HomeContext.Provider 值中传递它们。界面好吗?
import React,{useState} from "react";
import { useHistory } from "react-router-dom"
const HomeContext = React.createContext<Props | boolean>(null);
interface Props{
setIsModalOpenTwo: (value: boolean) => void;
closeModalOne: (value: boolean) => void;
closeModalTwo: (value: boolean) => void;
setIsModalOpenOne: (value: boolean) => void;
modalIsOpenOne: boolean;
openModalTwo: (value: boolean) => void;
openModalOne: (value: boolean) => void;
modalIsOpenTwo: boolean;
}
export const HomeProvider:React.FC<Props> = ({ children } ) => {
const [modalIsOpenOne, setIsModalOpenOne] =useState(false)
const [modalIsOpenTwo, setIsModalOpenTwo] =useState(false)
const closeModalOne=()=>{
setIsModalOpenOne(false);
}
const openModalOne=()=>{
setIsModalOpenOne(true);
}
const closeModalTwo=()=>{
setIsModalOpenTwo(false);
}
const openModalTwo=()=>{
setIsModalOpenTwo(true);
}
return (
<HomeContext.Provider
value={{ closeModalOne, openModalOne,setIsModalOpenTwo, modalIsOpenOne, modalIsOpenTwo, setIsModalOpenOne, openModalTwo, closeModalTwo}}
>
<>
{children}
</>
</HomeContext.Provider>
);
}
export { HomeContext, };
【问题讨论】:
-
“不让我通过它们”是什么意思,错误是什么?
-
@DennisVash
Argument of type 'null' is not assignable to parameter of type 'boolean | Props' -
有道理...您的上下文不接受 null,
Props|boolean -
那么应该是什么
-
如果我将布尔值更改为 null,当我尝试使用任何状态时,它表明在道具中找不到“状态”|“null
标签: javascript reactjs typescript react-context