一、前言
react开发中,组件嵌套太深,怎么组合多个jsx dom的方法
二、
// 嵌套层级太深
const StateProviders = ({ children }) => (
<LogProvider>
<UserProvider>
<MenuProvider>
<AppProvider>
{children}
</AppProvider>
</MenuProvider>
</UserProvider>
</LogProvider>
)
function App() {
return (
<StateProviders>
<Main />
</StateProviders>
)
}
// 简化
function composeProviders(...providers) {
return ({ children }) =>
providers.reduce(
(prev, Provider) => <Provider>{prev}</Provider>,
children,
)
}
const StateProviders = composeProviders(
LogProvider,
UserProvider,
MenuProvider,
AppProvider,
)
function App() {
return (
<StateProvider>
<Main />
</StateProvider>
)
}