[英]How to call React/Typescript child component function from parent component?
[英]How to call a function from an imported component in another file in React + Typescript?
我目前正在尝试将我主页中的一个按钮连接到 go 到另一个链接,并且我想利用另一个文件中的一些功能。 目前,我要使用的功能位于SettingsMenu.tsx file
中,组件如下所示:
export class SettingsMenu extends Component<
SettingsMenuProps,
SettingsMenuState
> {
constructor(props: SettingsMenuProps) {
//Lots of code
}
gotoExternalLink = (e: React.MouseEvent, url: string) => {
window.open(url, '_blank', 'noopener noreferrer');
this.hideSettingsMenu(e);
};
//More code
}
在我的主页中,我已经完成了import SettingsMenu from './SettingsMenu'
并尝试使用gotoExternalLink
function 连接我的按钮,但我很难做到。 我尝试了以下方法:
Button variant="contained" className="support-button"
onClick={gotoExternalLink(e,"https://app.clovergive.com/App/Form/c226e457-5e64-4f75-8cbb-e8cba99138f4" )}>
Support Us
</Button>
任何人都可以提供一些支持或帮助吗?
站在一个组件上并从另一个组件调用方法不是 React 数据流的工作方式。
如果您只是想 go 到外部链接,您可以将该逻辑提取到一个 utils 文件中并在每个事件处理程序中调用它。
//in utils.ts
export const goToExternalLinkUtil = (url: string) => {
window.open(url, '_blank', 'noopener noreferrer');
}
// in HomePage.tsx
<Button variant="contained"
className="support-button"
onClick={() => { gotoExternalLinkUtil("https://app.clovergive.com/App/Form/c226e457-5e64-4f75-8cbb-e8cba99138f4");}
>
Support Us
</Button>
如果您想 go 到外部链接然后隐藏设置菜单,您可能需要将 isSettingMenuOpen的isSettingMenuOpen
到SettingMenu
和Homepage
的最近祖先。
另一个建议是使用Redux在一个集中位置管理所有 state。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.