具有Preact SSR和RTL支持的Emotion.js

时间:2019-05-31 12:13:30

标签: javascript webpack preact emotion

我有一个预先准备好的SSR应用程序,并已使用Emotion JS 10进行样式设置。

我想为此添加RTL支持,因此使用了createEmotioncreateEmotionServer并使用了生成的renderStylesToString来渲染应用程序。

但是,在创建createEmotion时,它要求使用我为其添加了stylis-rtl插件的插件,但这将始终应用RTL样式,而我希望在以下情况下应用RTL样式:每个请求。

我找不到任何方法可以告诉情感应用以及在每个请求的基础上获得RTL的样式。 它们确实具有React 16的直接实现,其中您可以将每个请求的多个缓存传递给CacheProvider

但是我似乎无法为Preact弄清楚这一点。

一种解决方案可能是为RTL提供不同的Webpack版本,但这是不必要的开销。

1 个答案:

答案 0 :(得分:0)

如果要针对每个请求进行此操作,则应创建2个情感实例(一个带有插件,另一个不带插件)。另外,您将必须为每个请求使用正确的实例-最简单的方法可能是在上下文中:将情绪放在上下文中,然后从那里而不是从import语句使用它。