首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以按照类似于响应propTypes的要求指定ember组件属性?

是否可以按照类似于响应propTypes的要求指定ember组件属性?
EN

Stack Overflow用户
提问于 2015-07-23 00:03:07
回答 3查看 703关注 0票数 1

是否有任何方法来指定一个属性在成员>=1.13中需要,以便如果它没有被传递,它将提供一个有用和明确的消息?

我想,一旦ember-validations最终得到更新,就会涵盖它。我只是想知道我是不是错过了什么。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-15 03:21:29

我知道我有点晚了,但是现在有了余烬-支柱-类型,它的API与React的API几乎相同。

以下是消费的一个例子:

代码语言:javascript
复制
import Ember from 'ember'
import PropTypeMixin, {PropTypes} from 'ember-prop-types'

export default Ember.Component.extend(PropTypeMixin, {
  propTypes: {
    foo: PropTypes.string,
    bar: PropTypes.number.isRequired,
    baz: PropTypes.oneOf([
      PropTypes.bool,
      PropTypes.string
    ])
  },

  getDefaultProps () {
    return {
      foo: 'This is going to be highly profitable'
    }
  }
})

免责声明:我是这个项目的创造者。

票数 4
EN

Stack Overflow用户

发布于 2015-07-23 09:56:59

您可以使用Ember.assert作为属性的默认值,这样如果没有设置它,您就会得到一条错误消息。

代码语言:javascript
复制
Import Ember from 'ember';

const { computed, assert } = Ember;

myProperty: computed(function() { 
  return assert('My property cannot be empty');
})
票数 1
EN

Stack Overflow用户

发布于 2016-03-08 20:13:15

正如上面提到的@Kilter,Ember.assert方法是最好的方法。

下面是一个小示例,虽然它不如React那样具有声明性,但效果也一样好。

代码语言:javascript
复制
didReceiveAttrs() {
  this._super(...arguments);

  assert('You must pass a model into the submit-button component', this.get('model'));
},
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31576025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档