reactjs - 高级 React Typescript 功能组件声明
问题描述
我对带有 React 的 Typescript 比较陌生:我已经构建了一些较小的应用程序来准备开始新工作,但我有点卡在下面的代码上。有人可以解释一下 FunctionComponent 声明中发生了什么吗?
import * as React from 'react';
import {createStructuredSelector} from 'reselect';
const makeMapStateToProps = () =>
createStructuredSelector({
selectedLinkUrl:'someURL',
selectedLinkComponentId: 'someID'
});
interface DemoProps {
name?: string;
}
const SomeComponent: React.FunctionComponent<DemoProps &
ReturnType<ReturnType<typeof makeMapStateToProps>>> = ({
prop1, prop2
}) => <div prop1={prop1} prop2={prop2} />
解决方案
好的,让我们深入研究一下:
const SomeComponent: React.FC<DemoProps &
ReturnType<ReturnType<typeof makeMapStateToProps>>> = ({
prop1, prop2
}) => <div prop1={prop1} prop2={prop2} />
DemoProps
是道具的界面,makeMapStateToProps
也是状态的界面。- state 收到的 props 被解构为 props1 和 props2
- 然后将这些道具传递给 in render 方法。
推荐阅读
- typescript - 用 Jest 正确地模拟库/方法
- magento - Magento 2.1 - 如何降级 Algolia Search?
- python - 比较两个 pandas 数据框列的元素并基于第三列创建一个新列
- android - 不要在 android 9 pie 上使用代理
- encryption - 非 https 会话 cookie 的 base64 解码
- ios - Xcode 10、Swift 4.2 中是否弃用了 UserDefaults?
- apache-spark - 显示在 Spark+Parquet 程序中读取的字节数
- python - pygeotools 中肯定存在的导入期间未找到的函数
- python - DLL 加载失败(无法导入 tensorflow)
- oracle - 如何在触发工资的同时获取员工的姓名?