reactjs - 如何在 Typescript 中声明一个 React 组件扩展包组件?
问题描述
我正在寻找一种方法来声明一个 React 组件,该组件使用我自己在 Typescript 中的道具扩展现有组件。源组件是来自react-d3-tree
npm 包 v2.0.0 的 ReactD3Tree。所以我有:
import ReactD3Tree from "react-d3-tree";
import { TreeProps } from "react-d3-tree/lib/Tree/types";
import { RawNodeDatum } from "react-d3-tree/lib/types/common";
interface MyNode extends RawNodeDatum {
// some properties
}
interface MyProps extends TreeProps {
onNodeClick: (targetNode: MyNode, event: Event) => any;
}
let MyTree: React.ComponentClass<MyProps>;
const MyComponentWithOtherOperations = () => {
...some more code here enter code here
return <MyTree data={data} onNodeClick={handleNodeClick} />
}
我的问题是如何正确覆盖接受作为参数onNodeClick
的道具?我想有一个参数,其中扩展提前谢谢ReactD3Tree
targetNode: RawNodeDatum
targetNode: MyNode
MyNode
RaNodeDatum
解决方案
如果我理解正确,您想将一个额外的参数传递给您的 NodeClick 事件处理程序。您正在寻找的是一个咖喱函数。
const nodeClickHandler = customprop => nodeValue => {
console.log(customprop, nodeValue);
};
const MyComponentWithOtherOperations = () => {
...some more code here enter code here
return <MyTree data={data} onNodeClick={nodeClickHandler("your custom data")} /> }
推荐阅读
- javascript - Zapier webhook url 替代方案
- git - git diff 目录提交与就地工作树文件
- python - 当没有时间戳字段时,如何从 Elasticsearch 获取最后修改的记录?
- java - 为什么 (13 / 3 == 4) 为真?
- python - 多进程池中的 p.close 和 p.join
- neo4j - (Neo4j) 查询不显示图表
- javascript - UWP - 将 png 保存为 jpg,我希望透明度变为白色
- javascript - React 添加购物车重构 - 未知添加状态
- cassandra - 使用 kafka connect cassandra sink 在 Cassandra 中自动生成表
- python - 使用聚合时 MongoDB 缓存或内存泄漏