这个错误是因为对象字面量中的属性"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"属性,并且在组件中使用该属性

不能将类型 isShow false; menuLeft number; menuTop number; 分配给类型props ReadonlyOmitProps never & = isShow boolean; menuLeft number; menuTop number; 。 对象字面量只能指定已知属性并且isShow不在类型props ReadonlyOmitProps never

原文地址: https://www.cveoy.top/t/topic/eO6v 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录