[英]How to pass the onClick() event to a child component from a button in the parent component in React?
[英]How to use a button from common component as a href and with onClick event in react?
我是新来的人,我有一个场景-使用一个常见的弹出窗口。
CommonPopup.js
<ButtonWrapper>
<Button secondary onClick={props.onRequestYes}>Yes</Button>
<Button onClick={props.onRequestNo}>No</Button>
</ButtonWrapper>
现在,我需要在两个不同的组件中使用此通用弹出窗口。
组件1-使用弹出窗口并调用父组件函数,然后执行一些正常工作的操作。
<CommonPopup
open={this.state.showConfirmCancelOrderPrompt}
onRequestNo={this.togglePopup}
onRequestYes={this.props.cancelOrder}
/>
组件2-使用弹出窗口并单击“是”按钮,导航到具有href = { ${someURL}?employeeNumber=${employeeNumber}
}的URL
注意:数据-someURL和employeeNumber将通过上下文传递
如何在两种情况下都使用我的组件?
你试过这个吗? <MyButton to="user" /> class MyButton extends React.Component{ render() { return <Link to={this.props.to} />; } }
尝试在onClick
调用的函数中设置window.location = <your url>
。 这应该够了吧。 或者,使用window.open(<your url>)
。
将<your url>
替换为所需的URL。
编辑:尝试这样的事情:
onClick={this.openUrl}
然后,定义如下函数:
openUrl() {
url = this.props.theUrl + "?employeeNumber=" + this.props.theEmployeeNumber;
window.open(url);
}
答案是,在组件2中,
<ContentContext.Consumer>
{({ someURL, employeeNumber }) => (
<CommonPopup
open={this.state.showConfirmCancelOrderPrompt}
onRequestClose={this.togglePopup.bind(this)}
onRequestYes={() =>
this.handleSearch(someURL,employeeNumber)}
/>
)}
</ContentContext.Consumer>
在功能上:
handleSearch = (someURL, employeeNumber) => {
this.props.history.push(`${someURL}?employeeNumber=${employeeNumber}`);
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.