Programming
context
通过 独立变量 做 context 值容器,提供一个 provide 来输入,consume 来输出
const GlobalState = {
context: [],
}
export const createEffectContext = <T = any>(defaultValue?: T) => {
let index: number
return {
provide(value?: T) {
index = GlobalState.context.length
GlobalState.context[index] = isValid(value) ? value : defaultValue
},
consume(): T {
return GlobalState.context[index]
},
}
}