基本上是这样:
function MyComponent() {
let [count, setCount] = useState(1)
let memo = useMyMemo(() => new MyClass)
return <div onClick={update}>{count}</div>
function update() {
setCount(count + 1)
}
}
function useMyMemo(fn) {
// what to do here?
}
class MyClass {
}
我希望useMyMemo
仅返回类每个组件实例的1个实例。我该如何设置它以实现它而又不使用任何现有的React钩子呢?如果没有React钩子是不可能的,为什么?如果只有通过访问内部API才有可能,您将如何做?
作为奖励,了解如何传递属性依赖关系以及如何使用它来确定备忘录是否应无效将很有帮助。
[我想您正在假设useMemo
已经起作用,假设您将[]
作为依赖项参数进行传递。每个MyClass
实例应该已经创建了一个MyComponent
实例。但是,文档说useMemo
的未来版本不能保证该值仅被调用一次,因此您可能想尝试useRef
。