【发布时间】:2021-04-05 14:27:08
【问题描述】:
我需要用 useEffect 钩子重写这个旧的 lifeCycle 方法,但我不确定如何。
componentDidMount() {
document.addEventListener("mousedown", this.handleClickOutside);
this.setState({
defaultSelectText: this.props.defaultText
});
}
componentWillUnmount() {
document.removeEventListener("mousedown", this.handleClickOutside);
}
我尝试过这种方式,但并没有真正奏效:
useEffect((props) => {
document.addEventListener("mousedown", this.handleClickOutside);
defaultSelectText(props.defaultText)
}, []);
可重现示例:https://codesandbox.io/s/weathered-sun-ej9tp?file=/src/DropDownSelect.js
【问题讨论】:
-
您似乎试图调用的
defaultSelectText函数是什么?另外我不认为useEffect回调需要参数 -
请做一个可重现的例子。 How to create a Minimal, Reproducible Example,你也肯定不需要函数组件中的
this.
标签: javascript reactjs ecmascript-6 react-hooks