2017-04-26 34 views
1

我已经测试了react-sketchapp,它看起来非常整齐。 除了像Text,View,Image等渲染默认的草图元素,是否有可能呈现一个默认的反应组件,其中包含用scss样式化的HTML标记?使用react-sketchapp渲染默认的HTML和CSS来绘制

我试图呈现以下Hello -component:

import React from 'react'; 
import { render, Artboard, Text, View } from 'react-sketchapp'; 

const Hello =() => (
    <View 
    name={`Hello View`} 
    > 
    <Text name="Hello Text"> 
     <span>Hello World</span> 
    </Text> 
    </View> 
); 

const Document =() => (
    <Artboard 
    name="Hello Board" 
    > 
    <Hello /> 
    </Artboard> 
); 

export default (context) => { 
    render(<Document />, context.document.currentPage()); 
} 

,但我得到了以下错误: Could not find renderer for type 'span' flexToSketchJSON

是渲染默认反应的组分,包括HTML/CSS到草图可能吗?

回答

1

您无法将HTML元素呈现为Sketch,与您无法将HTML元素呈现为React Native相同。

React只是一种管理抽象组件树的方法。如何渲染这些组件需要由您正在使用的特定渲染器来定义。 react-sketchapp是一个渲染器,它可以理解呈现给Sketch元素的组件,但它不理解HTML元素,如div。 (并且React Native包含知道如何将React Native组件渲染到本机移动视图的渲染器,react-music是知道如何将React Music组件渲染成音频的渲染器等)。

React本身与HTML元素或DOM无关。渲染器库是渲染到DOM中的魔力发生的地方。如果要将HTML元素呈现为Sketch,则需要编写一个React渲染器,该渲染器知道如何将HTML元素转换为Sketch的文件格式。

0

这是可能的。

试着用React-SketchApp来研究React-Primitives。 https://github.com/lelandrichardson/react-primitives

这是React-SketchApp中的一些例子,例如, https://github.com/airbnb/react-sketchapp/tree/master/examples/profile-cards-primitives

+0

虽然链接有帮助,但最好将相关部分复制到格式化的代码块中。 [并非每个人都可以访问外部网站,并且链接可能会随时间而崩溃。](https://stackoverflow.com/help/how-to-ask) –