Я создал несколько пользовательских хуков, и мне интересно, смогу ли я объединить их контекст Providers
.
У меня есть что-то вроде этого:
HookA
const ContextA = createContext({ value })
export const ProviderA = ({ children }) => {
return (
<ContextA.Provider value={{ myVal: 'A' }}>
{children}
</ContextA.Provider>
)
}
export const useA = () => {
const { myVal } = useContext(ContextA)
return { myVal }
}
HookB
const ContextB = createContext({ value })
export const ProviderB = ({ children }) => {
return (
<ContextB.Provider value={{ myVal: 'B' }}>
{children}
</ContextB.Provider>
)
}
export const useB = () => {
const { myVal } = useContext(ContextB)
return { myVal }
}
В настоящее время, чтобы использовать эти компоненты в компонентах, мне нужно обернуть приложение в провайдере следующим образом:
ReactDOM.render(
<ProviderA>
<ProviderB>
<App />
</ProviderB>
</ProviderA>,
document.getElementById('root')
)
Это возможно ли мне объединить их каким-то образом, например, создать CustomHooksProvider
, который действует как поставщик для обеих ловушек, но продолжает позволять мне useA
и useB
, как я делал?
Что-то вроде этого:
ReactDOM.render(
<CustomHooksProvider>
<App />
</CustomHooksProvider>,
document.getElementById('root')
)
Как должен выглядеть мой CustomHooksProvider
компонент?