我真的很喜欢shoutem 主题库,但我发现很难连接到使底层代码完美运行的递归INCLUDE(请参阅此处的代码+文档:https ://github.com/shoutem/theme/blob/develop /src/Theme.js)。例如,如果我们有:
render() {
return (
<StyleProvider style={theme}>
<View />
</StyleProvider>
);
}
const theme = _.merge(getTheme(), {
'shoutem.ui.Text': {
color: 'green',
},
});
这种简单的文本颜色更改将起作用,但仅适用于 sayem Text 组件。但是,由于 INCLUDE,Heading、Title、Subtitle 等都是从ushem 库中的Text 属性中提取的。使用简单的 _.merge(...) 只会覆盖组件本身,但不会覆盖它随后可能影响的任何内容。听起来我需要覆盖树中较高的属性(例如,文本),然后重新生成主题,以便它影响它包含的所有“子项”(例如,标题和标题)。使用公开的 API,目前是否有可能做到这一点?或者是否有任何你知道的叉子或实用程序可以通过你的库来实现这一点。