【发布时间】:2018-08-17 07:48:06
【问题描述】:
有谁知道为什么操作员在 react native (0.54.2) 调试和发布版本上表现不同?
这在调试时完美运行。如果usageTip不是空字符串并且我们是第一次加载,我们输入if并向用户显示usageTip:
if (this.props.usageTip =! '' && this.props.firstTimeLoading) {
return (
<Text style={styles.disclaimerTextStyle}>{this.props.usageTip}</Text>
);
}
但在发布时,if 行会以某种方式将 imageTip 设置为布尔值 true。那里发生了什么?
我也找到了一种让它在发布时工作的方法:
if (this.props.firstTimeLoading && (this.props.usageTip ==! '')) {
return (
<Text style={styles.disclaimerTextStyle}>{this.props.usageTip}</Text>
);
}
但是我很困惑为什么我的代码的第一个版本会这样?也很难找到问题,因为发布构建调试不是很容易。 (至少我不知道有什么简单的方法)
【问题讨论】:
-
您的 if 语句中有错字:this.props.usageTip =! '' => 应该是 this.props.usageTip != ''
-
谢谢,我刚刚意识到我已经在工作版本中修复了它,即使这里的示例没有修复。我想知道为什么它在调试时起作用??
-
您是否启用了远程调试器?
-
是的。当在调试版本上尝试调试时,它在模拟器和设备上运行良好。现在我可能知道发生了什么。由于拼写错误,if 被解释为将布尔值分配给 this.props.usageTip。并且 if 在调试和发布版本中都被解释为 true,但不同的可能是调试版本不允许组件为 this.props 分配值,因此原始值不会更改,但在发布版本中它允许分配。不确定哪种行为是正确的?
标签: javascript react-native operators release