我有以下代码允许你merge
创建主题,我想做的是能够传递未定义数量的主题。
我能怎么做?
代码:
const mergeTheme = (baseTheme, theme, darkTheme) => ({
...Object.entries(baseTheme).reduce(
(acc, [key, value]) => ({
...acc,
[key]: {
...value,
...(theme[key] || {}),
...(darkTheme[key] || {}),
},
}),
{},
),
})
如我所愿,输入参数:
const mergeTheme = (baseTheme, ...theme) => ({
...Object.entries(baseTheme).reduce(
(acc, [key, value]) => ({
...acc,
[key]: {
...value,
<- Here
},
}),
{},
),
})
你可以Object.assign
用来合并从的themes
值映射的数组key
:
const mergeTheme = (baseTheme, ...themes) => ({
...Object.entries(baseTheme).reduce(
(acc, [key, value]) => ({
...acc,
[key]: {
...value,
...Object.assign({}, ...(themes.map(theme => theme[key])))
},
}),
{},
),
});