【问题标题】:Javascript :? operatorJavascript:?操作员
【发布时间】:2015-07-25 21:05:38
【问题描述】:

我不知道这是做什么的,甚至是什么。有人能指点我研究什么吗?

circle: (null : ?{ setNativeProps(props: Object): void }),

它是 React Native 示例的一部分,也是 React Native 类定义的一部分。外部分为(略):

var NavigatorIOSExample = React.createClass({
...
circle: (null : ?{ setNativeProps(props: Object): void }),
...
});

我认为三元运算符的使用有些棘手。一个匿名函数。但是呢?

来源:https://facebook.github.io/react-native/docs/panresponder.html

【问题讨论】:

  • @Quentin 我认为这不是 OP 所要求的。 null : ? ... 不是有效的原生 JavaScript 语法,当然也没有包含在 that post 中。
  • 确实如此。看起来像一个三元运算符(这是我首先回答的),但事实并非如此。奇怪...从来没有见过这个。
  • 不是 JavaScript。可能是一些 React-magic...
  • 我找不到它 herehere 所以请给我们一个你找到这一行的真实来源;我想这是你的发明,否则

标签: javascript react-native flowtype


【解决方案1】:

声明是来自Flow 的语法。它说'circle'是一个对象,其属性是一个名为'setNativeProps'的函数:

{ setNativeProps(props: Object): void }

它还表示圆 is nullable(由前面的“?”表示),并且在指定类型的对象被分配给它之前,默认值将是 null。

如果您进一步查看示例,您可以看到调用代码如何在调用 setNativeProps 之前检查该圆是否已分配:

this.circle && this.circle.setNativeProps({
    backgroundColor: CIRCLE_HIGHLIGHT_COLOR
});

【讨论】:

    猜你喜欢
    • 2010-11-25
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多