【问题标题】:How build a composable wrapper that wraps another composable unit with Binding.scala如何构建一个可组合包装器,用 Binding.scala 包装另一个可组合单元
【发布时间】:2018-03-10 21:31:07
【问题描述】:

我正在尝试使用 binding.scala 制作可组合的组件。我希望能够拥有一个组件,该组件可用于包装传入的其他组件。例如:一个卡片组件,它围绕任何其他任意 @dom 函数包装一个样式框。我尝试了几种方法,但意识到由于 @dom 宏,类型似乎比看起来更复杂。

下面,我提供了一种不起作用的方法,但显示了意图。我希望能够调用 wrapperMarkup 并将其传递给 contentMarkup。

我发现了许多将数据传递到@dom 函数并呈现的示例,但没有显示如何传递另一个@dom 函数或@dom 调用结果的示例。

有没有什么好的方法可以做到这一点?

type MarkupFun = ()=>Binding[Div]

@dom
def contentMarkup():Binding[Div] = {
  <div>card Content</div>
}

@dom
def wrapperMarkup(f:MarkupFun):Binding[Div] = {
  //<div>card wrapper {f.bind}</div> // What I want that doesn't work 
  <div>card wrapper {contentMarkup().bind}</div> // works but not what I want.
}

【问题讨论】:

    标签: binding.scala


    【解决方案1】:

    在我发布问题后不久,我找到了显而易见的答案。在调用绑定之前我未能调用该函数。

    @dom
    def wrapperMarkup(f:MarkupFun):Binding[Div] = {
      <div>card wrapper {f().bind}</div>
    }
    

    但是,任何其他最佳实践建议都会很棒。

    【讨论】:

      猜你喜欢
      • 2021-05-20
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 2017-05-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      相关资源
      最近更新 更多