将工厂功能传递给Dash组件

时间:2019-06-05 11:41:00

标签: javascript python reactjs plotly-dash

在React中,通常将组件传递给工厂函数,该函数告诉组件如何呈现其子代(例如render props模式)。当组件需要呈现遵循特定模板的多个子代时,就会发生这种情况。

在Plotly Dash(React的包装器)中,似乎我们可以通过合成将组件传递给其他组件。

app.layout = html.Div(children=[
    html.H1(children='Hello Dash'),
    html.Div(children='''
        Dash: A web application framework for Python.
    '''),
])

但是,似乎我们无法将工厂函数传递给组件,因为明确禁止了in the guide

  

JavaScript函数不是有效的输入参数

鉴于此,我们如何在Dash自定义组件中模仿此工厂功能模式?我正在尝试为react-awesome-query-builder创建一个Dash包装器,它希望我像这样调用它,其中get_children是一个返回组件的工厂函数。

<Query 
   {...config} 
   get_children={this.getChildren}
   onChange={this.onChange}
></Query>

我当前的想法是我们可以将模板组件传递给Dash中的Query组件,然后可以使用React.cloneElement()进行克隆,并修改其道具,让我像这样使用它:

app.layout = Query(child_template=html.Div("Template"))

这项工作有效吗?如果没有,有什么办法可以在Dash中制作这些高阶组件?

0 个答案:

没有答案