不能将类型 isShow false; menuLeft number; menuTop number; 分配给类型props ReadonlyOmitProps never & = isShow boolean; menuLeft number; menuTop number; 。 对象字面量只能指定已知属性并且isShow不在类型props ReadonlyOmitProps never
这个错误是因为对象字面量中的属性"isShow"不在函数类型中定义的属性列表中。要解决这个问题,需要将函数类型中的属性列表中添加"isShow"属性。
例如,假设有以下组件:
interface Props {
menuLeft: number;
menuTop: number;
}
const MyComponent: React.FC<Props> = ({ menuLeft, menuTop }) => {
const [isShow, setIsShow] = useState(false);
return (
<div>
<button onClick={() => setIsShow(!isShow)}>Toggle Menu</button>
{isShow && (
<div style={{ position: "absolute", left: menuLeft, top: menuTop }}>
Menu
</div>
)}
</div>
);
};
可以看到,函数类型中没有定义"isShow"属性。要解决这个问题,可以将函数类型改为以下形式:
const MyComponent: React.FC<Props & { isShow: boolean }> = ({
menuLeft,
menuTop,
isShow,
}) => {
const setIsShow = (value: boolean) => {
// ...
};
return (
<div>
<button onClick={() => setIsShow(!isShow)}>Toggle Menu</button>
{isShow && (
<div style={{ position: "absolute", left: menuLeft, top: menuTop }}>
Menu
</div>
)}
</div>
);
};
在这个解决方案中,将函数类型的属性列表添加了"isShow"属性,并且在组件中使用该属性
原文地址: https://www.cveoy.top/t/topic/eO6v 著作权归作者所有。请勿转载和采集!