代码之家  ›  专栏  ›  技术社区  ›  Cameron

如何测试成员组件是否缺少参数?

  •  1
  • Cameron  · 技术社区  · 7 年前

    在我们的车把文件中有一个按钮组件看起来像这样。

    {{some-button link="goes-to-here"}}
    

    基本上就像 {{#link-to}} 只是它能做得多一点。我们最近在我们的网站上发现了一个按钮,因为它丢失了 link 参数。我想知道是否有一种方法可以测试或强制 链接 始终填写参数。不过,我不确定如何测试这个,或者是否可能。

    全码

    组件,JS

    import Component from '@ember/component';
    
    export default Component.extend({
    });
    

    组分

    <div class="row c2a mt50px">
      <div class="col-md-12">
        {{#link-to "contact" link class="btn btn-primary btn-lg" }}{{this.buttonText}}{{/link-to}}
      </div>
    </div>
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Cameron    7 年前

    最后,我使用了@patsyissa提到的断言,但也使用了didReceiveAtters。

    import Component from '@ember/component';
    import { assert } from '@ember/debug';
    
    export default Component.extend({
      buttonText: 'REQUEST A SAMPLE',
      didReceiveAttrs() {
        assert('Component must contain link of some kind', this.link != null);
      },
    });
    

    我喜欢使用 didReceiveAttrs 与其他功能相比,比如 didRender 因为我相信第一个在初始渲染时只调用一次。