首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不变冲突:文本字符串必须在<Text>组件中呈现

不变冲突:文本字符串必须在<Text>组件中呈现
EN

Stack Overflow用户
提问于 2018-09-17 12:58:48
回答 47查看 169.4K关注 0票数 161

我已经从RN0.54升级到0.57,而我的应用程序由于使用而大打折扣。

我在TextInput组件上使用了它们的错误功能,这基本上启用了道具,您可以对错误消息进行样式设置并设置错误消息。非常方便,但是升级打破了这些错误,现在我遇到了这样的错误:

因此,我已经删除了该代码,错误消失了,但是在运行这段代码时,我仍然会收到这个问题:

代码语言:javascript
运行
复制
{ this.state.event.cards[i].fields[j].error && 

  <Text style={{ color: '#e74c3c', fontSize: 14, paddingLeft: 5 }}>
    {this.state.event.cards[i].fields[j].error}
  </Text>
}

当我开始键入一个文本输入时,它会将我的错误消息设置为一个空字符串,因此如果返回一个错误,那么在字段中键入就会使错误消失。

一旦this.state.event.cards[i].fields[j].error变成一个字符串,我就会得到这个错误。但是,您可以看到我检查是否存在错误,然后只显示错误,或者至少尝试显示错误。

另一双眼睛会感激这只眼睛的。

EN

回答 47

Stack Overflow用户

回答已采纳

发布于 2019-01-26 23:32:43

对于我来说,以下代码工作正常,只要this.state.error === undefined或它不是空字符串。

代码语言:javascript
运行
复制
render() {
  return (
    <View>
      {this.state.error &&

        <Text>
          Error message: {this.state.error}
        </Text>
      }
    </View>
  );
}

如果错误状态更改为空字符串'',则会出现上述异常:Invariant Violation: Text strings must be rendered within a <Text> component

原因是,当this.state.error === ''时,下面的表达式将被计算为空字符串,即'',这将导致Invariant Violation: Text strings must be rendered within a <Text> component

代码语言:javascript
运行
复制
{this.state.error &&

  <Text>
    Error message: {this.state.error}
  </Text>
}

this.state.error === undefined时,表达式将被计算为undefined,这正是我们所期望的,而且很好。

票数 73
EN

Stack Overflow用户

发布于 2019-11-29 16:13:25

,我的脚中了太多枪了,所以我把这个留给下一个人,而不是.

每当你看到

代码语言:javascript
运行
复制
Invariant Violation: Text strings must be rendered within a <Text> component

99%的情况将由只使用&&而不是三元语句的条件呈现引起。为什么?因为当您的条件解析为未定义的时,那里没有组件,而不是null或空数组,它们可以安全地显示空空间,并从地狱的红色屏幕中拯救您的生命。

将所有逻辑条件呈现更改为三元表示。

ie:

不做

代码语言:javascript
运行
复制
widgetNumber === 10 && <MyComponent />

DO

代码语言:javascript
运行
复制
widgetNumber === 10 ? <MyComponent /> : null

每次都是。请。因为爱反应本土化。

票数 299
EN

Stack Overflow用户

发布于 2019-01-14 00:13:12

当您的返回()函数中有/*注释*/时,也会发生。

票数 84
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52368342

复制
相关文章

相似问题

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