【发布时间】:2020-09-26 14:56:38
【问题描述】:
我在将切换功能抽象为挂钩时遇到问题。我可以正确切换,但这个钩子代码有问题:
import { useState, useCallback } from "react";
const useToggle = (initialValue = false) => {
const [value, setValue] = useState(initialValue);
const toggle = useCallback((defaultValue) => {
defaultValue !== undefined
? setValue(defaultValue) //set true or false
: setValue((value) => !value); //if param is not supplied, toggle the value
}, []);
return [value, toggle];
};
export default useToggle;
https://codesandbox.io/s/goofy-swartz-ztdfb?file=/src/App.js
怎么了?
【问题讨论】:
-
您好,您能否添加更多信息,例如向我们展示您正在使用此 toggle() 的组件,我的结论之一是您不需要使用 useCallback 挂钩
-
@akibo 您的自定义挂钩很好。请参阅我的回答,以更好地理解为什么您的实现和文章的实现存在差异。
-
@akibo 看看这个链接,看看这是否是你要找的? codesandbox.io/s/relaxed-wilbur-wbu8k?file=/src/App.js
标签: javascript reactjs