reactjs - 如何使用反应和打字稿访问反应功能组件中的道具?
问题描述
我有一个 MainComponent 和 ChildComponent 并将 isOpen 道具从 MainComponent 传递给 ChildComponent。
下面是代码,
function MainComponent () {
return (
<Route
path="items"
render={routeProps => (
<Layout>
<ChildComponent
isOpen={isOpen}// passing prop here
{...routeProps}
/>
</Layout>
)}
/>
)
}
type Props = RouteComponentProps<{ first: string, second: string }>;
function SchedulePage({ match }: Props) { //how can i access it here
const { first } = match.params;
}
我已经尝试过类似下面的东西
type Props = RouteComponentProps<{ first: string; second: string, isOpen: boolean }>;
function ChildComponent({ isOpen, match }: Props) {
const { first } = match.params;
}
但这似乎并不正确。有想法该怎么解决这个吗。谢谢。
解决方案
您必须扩展 RouteComponentProps 以将其他道具传递给组件。RouteComponentProps
只会采用参数、静态上下文和位置状态的类型参数。
这是你如何做到的。
interface IParams {
first: string;
second: string;
}
interface Props extends RouteComponentProps<IParams> {
isOpen: boolean;
}
function SchedulePage({ match, isOpen }: Props) { // this is how you access your props
const { first, second } = match.params;
}
如果你想使用React.FC
泛型,这是如何做到的。
const SchedulePage: React.FC<Props> = ({ match, isOpen }) => {
const { first, second } = match.params;
};
让我知道它是否有帮助或您是否遇到任何错误。
推荐阅读
- libcurl - curl_multi_fdset() 结合 poll()
- python - 宽度、高度和边距在 PySide6 的 QT 样式表中不起作用
- python - 如何在 Python 中创建一个多处理字符串数组?
- python - 计算有向图中的累积流量
- c++ - 如何使用这些类构造函数打印“ABCDabcd”?
- apache-spark - 关于 spark 中的广播变量的内存
- visual-studio - 对 rdlc 报告有问题
- python - 带有非默认表的 Django 重定向
- neo4j - Neo4j 图中的密码查询
- api - 更改字符串的 maxLength 会破坏 API 合同?