【发布时间】:2020-12-28 13:05:39
【问题描述】:
我想使用 react 和 typescript 修复错误“false 类型的参数不可分配给 (currentValue: boolean) => boolean。
我有一个方法 toggleDialogVisibility 定义如下
export const useDialog() {
const {setDialogVisibility} = React.useContext(DialogContext);
return ({
const toggleDialogVisibility = (toggleValue: (currentValue: boolean) => boolean) => { //this is causing the error
setDialogVisible(toggleValue);
};
} );
};
我在下面的两个组件中调用它,
function Parent() {
const {toggleDialogVisibility} = useDialog();
return (
<div onClick={() => toggleDialogVisibility(open => !open)} />
);
}
function AnotherComponent() {
const {toggleDialogVisibility} = useDialog();
const handle = () => {
toggleDialogVisibility(false); //error here
}
}
我不确定如何解决这个问题。有人可以帮我解决这个问题。谢谢。
【问题讨论】:
-
我已经编辑了我的问题。之前我的代码中有一个错字。是的,这行得通。但是当我在其他组件(AnotherComponent)中使用相同的toggleDialogVisibility时它会出错
-
那么stackoverflow.com/questions/63822492 发生了什么?
-
请将我的代码与此问题中的代码进行比较。这里的问题stackoverflow.com/questions/63822492 只提到了从父组件调用toggleDialogVisibility。它适用于那里提供的解决方案。但现在我有另一个组件,我在其中调用 toggleDialogVisibility(false) 就像现在抛出错误一样。
标签: reactjs typescript