【发布时间】:2021-02-15 13:34:07
【问题描述】:
背景:
我有一个useEffect,它只运行一次页面渲染。我在许多路线上使用它。
打字变得重复,正在考虑将其放入我拥有的包含有用的可重用代码的 function_helper 文件中。
目标:
我正在尝试将此useEffect 代码放入该帮助文件中,并在需要时调用它。我已经能够调用它并传递一个函数来运行。但是我无法从使用效果中传递给调用的函数中获取返回结果。我并不总是需要返回被调用的函数,但我目前需要,并且能够做到这一点会很方便。
我目前使用的:(不在帮助文件中,这是我在实际渲染的组件中使用的)
const [count, setCount] = useState(0);
useEffect( event => {
setCount(100);
function a(event) {
function_abc()
}
a(event)
}, [count])
到目前为止我实现目标的代码
export function useffect_run_once(function_to_run) {
var result
const [count, setCount] = useState(0);
useEffect( event => {
setCount(100);
function a(event) {
result = function_to_run()
console.log("ttttttttttttttttttt: ",result)
}
a(event)
}, [count])
// return result
// runs once on page load. Due to the '[]'
}
我的尝试
我尝试了各种方法,例如在 useEffect 的每一层上设置返回值,设置返回的结果变量,使它们与等待异步。
【问题讨论】:
-
您的 useEffect 代码错误。你到底想发生什么。用你的代码
标签: javascript reactjs return use-effect use-state