【发布时间】:2019-05-08 14:08:09
【问题描述】:
如何使用 React Hooks 传递函数?我用过useCallback,但它显示它不是一个函数的错误。
在类组件中我是这样做的:
hidePopUp = (event) => {
event.preventDefault();
this.setState({
popup: !this.state.popup
})
}
然后我在传递函数:
<Popup hidePopUp={this.hidePopUp}/>
这是我对 Hooks 的问题:
const hidePopup = useCallback(
(event) => {
event.preventDefault();
setPopup(!popup);
}, []
);
<Popup hidePopup={() => hidePopup}/>
这是我在 Popup 组件中的按钮:
<button onClick={(event)=>this.props.hidePopUp(event)}></button>
【问题讨论】:
-
在您的第一个示例中,您将
hidePopUp属性设置为采用单个参数的函数。在您的第二个示例中,您将hidePopUp属性设置为一个 不带参数并返回一个函数 的函数。你试过<Popup hidePopup={hidePopup} />吗? -
你在函数名上写错了。道具名称 -
hidePopup,函数名称 -hidePopUp。 'Up' - 从大写开始 -
两个愚蠢的错误,无论如何谢谢你们,它有效。
标签: javascript reactjs