【发布时间】:2020-09-17 06:40:10
【问题描述】:
我似乎无法让我的模态按钮运行我传递给它的功能。
我错过了什么吗?
Dashboard.js
const Dashboard = () => {
let show = false;
const showModal = () => {
console.log('showing modal');
};
const hideModal = () => {
console.log('closing modal');
};
return (
<div>
<h1>This is the dashboard</h1>
<button type="button" onClick={showModal}>Open</button>
<Modal handleClose={hideModal} show={show}/>
</div>
)
};
export default Dashboard;
Modal.js
const Modal = (handleClose, show, children) => {
const showHideClass = show ? 'show-modal' : 'hide-modal';
return (
<div className={showHideClass}>
<h1>This is my modal!</h1>
<p>{children}</p>
<button onClick={handleClose}>Close</button>
</div>
);
};
export default Modal;
我收到了警告:Expected 'onClick' listener to be a function, instead got a value of 'object' type.,所以我将 modal.js 中的 onClick 更改为 () => handleClose,这消除了警告,但是当我单击按钮时没有任何反应...
【问题讨论】:
-
功能组件只需要 one 参数:
props。您将其分解为几个变量,但它仍然是一个对象。 @noahCallaway 是正确的。您看到的结果是handleClose实际上是自第一个参数以来的整个props对象。
标签: javascript reactjs functional-programming stateless