reactjs - React.FC 泛型之一
问题描述
我正在尝试构建将返回路由器链接或根据道具提供按钮的组件。这是我的一段代码:
import React from 'react';
import Button from '@material-ui/core/Button';
import { Link } from 'react-router-dom';
type OwnProps = { url: string } | { onClick: () => void };
const NavButton: React.FC<OwnProps> = ({ url, onClick, children }) => (
<Button component={url ? Link : undefined} to={url} onClick={onClick}>
{children}
</Button>
);
export default NavButton;
但是,我收到一条错误消息:
TS2339:“PropsWithChildren”类型上不存在属性“url”。
TS2339:“PropsWithChildren”类型上不存在属性“onClick”。
PS:我不希望两个道具都包含在界面中。我想要这个或那个。
解决方案
你可以OwnProps
这样输入:
{ url: string, onClick?: never } | { url?: never, onClick: () => void }
推荐阅读
- javascript - 在 Nuxtjs 动态页面的 css 和 js 没有在页面重新加载时加载
- python - FPDF2 Python:如何计算内部长字符串后的多单元格高度?
- r - stat_summary 函数改变图例的顺序
- c - 如何扫描包含字符和数字的字符串?
- windows-runtime - FromBluetoothAddressAsync 函数返回 null
- string - WPML 如何处理替换 woocommerce 消息?
- java - 为什么 h.print_for() 会在 g.print_for() 正常工作时给出错误消息?
- python - 我怎样才能从右到左定位框架没有边距
- apache-spark - Spark master 无法远程启动工作人员,但工作人员在使用 ssh 时正常启动
- java - 调试用户应用程序中的错误。有可能的?