我基本上是想把我的头缠住这样的东西……在钩子之间传递范围的直接方法是直接将其作为变量传递给每个钩子:
function MyComponent(props) {
let x = {}
useC(x, 'foo', 'bar')
useC(x, 'hello', 'world')
console.log(x)
// { foo: 'bar', hello: 'world' }
return null
}
function useC(obj, key, value) {
obj[key] = value
}
但这很丑陋,并且没有利用纤维的聪明之处。我想以某种方式绕过“组件实例”的范围,而不实际直接绕过它。而是使用某种挂钩将其传递。
function MyComponent(props) {
useC('foo', 'bar')
useC('hello', 'world')
let x = useA()
console.log(x)
// { foo: 'bar', hello: 'world' }
return null
}
function useA() {
return useMemo(() => obj)
}
function useB() {
}
function useC(key, value) {
let obj = useA()
obj[key] = value
}
像这样可能吗?我在正确的轨道上吗?