【发布时间】:2020-11-02 01:42:09
【问题描述】:
问题:React Hook "React.useEffect" 在函数 "selectmenu" 中被调用,该函数既不是 React 函数组件也不是自定义 React Hook 函数。
目标:我只想在单击按钮时安装 Component('component DidMount/WillUnmount) (使用 useEffect()),而不是在加载文件(或整个组件)时安装。
实际目标:我想在点击时选择(或突出显示)一个文件(自定义)。但是当用户在文件尺寸之外点击(),那么选定的文件应该被取消选择(删除突出显示)。
export default function Academics() {
let [ ismenuselected, setmenuselection] = useState(0)
const selectmenu = () => {
console.log("Menu to Select")
React.useEffect(() => {
console.log('Component DidMount/WillUnmount')
return () => {
console.log('Component Unmounted')
}
}, [isfolderselected]);
}
return (
<div onClick={selectmenu}></div>
)
}
注意:
【问题讨论】:
-
你不能在回调中加入钩子。这在反应文档中的钩子常见问题的官方规则中有所涵盖。您需要切换一些状态,然后在无条件调用的效果挂钩中检查该状态。
-
感谢@JaredSmith。我通过使用
Class Component和CompounentDidMount使其工作
标签: javascript reactjs react-native react-hooks onclicklistener