在反应本机中多个文本元素的文本换行?

Joh*_*ohn 8 word-wrap react-native

假设我有以下反应本机代码:

//FormatText.js

 <View style={styleOptions.container}>
<Text style={styleOptions.regular}>
    Hello world I am going to eat some Pizza for the sake of eating pizza.{" "}
</Text>
<Text style={[{ fontWeight: "bold" }, styleOptions.strong]}>
    Super Pizza Store.{" "}
</Text>
<Text style={styleOptions.regular}>You will pay $10</Text>
<Text style={[{ textAlignVertical: "top" }, styleOptions.superscript]}>
    8
</Text>
<Text style={styleOptions.regular}>. I doubt you can afford it.</Text>
</View>;
Run Code Online (Sandbox Code Playgroud)

并且styleOptions是在此文件中定义的。

//Style.js
 const styleOptions = {
container: {
    flexDirection: "row",
    flexWrap: "wrap",
    width: 300,
    padding: 10
},
regular: { fontSize: 13 },
superscript: { fontSize: 8 },
strong: { fontSize: 13 }
};
Run Code Online (Sandbox Code Playgroud)

我看到以下输出:

在此输入图像描述

问题在于“Super Pizza Store”之后和指数之后有一个换行符。我想这是因为每个 Text 组件都太长,无法容纳 300px 的空间。

如何消除换行符并只允许自然换行符?理想情况下,我想将我的更改限制为Style.js仅。作为最后的手段,如果绝对有必要,我将重组FormatText.js.

Pri*_*dya 7

您的父元素包含样式

flexDirection:"row",flexWrap:"wrap",width:300,padding:10

因此,如果子元素的宽度小于,它将包裹子元素200

既然你child elementsmultiple,那么谁不满足上述条件,谁就被整体包裹

为此,您可以考虑使用嵌套Text elements作为嵌套

<View style={styleOptions.container}>
  <Text style={styleOptions.regular}>Hello world I am going to eat some Pizza for the sake of eating pizza.
    <Text style={[{fontWeight:"bold"},styleOptions.strong]}>Super Pizza Store. </Text>
    <Text style={styleOptions.regular}>You will pay $10</Text>
    <Text style={[{textAlignVertical:'top'},styleOptions.superscript]}>8</Text>
    <Text style={styleOptions.regular}>.  I doubt you can afford it.</Text>
  </Text>
</View>
Run Code Online (Sandbox Code Playgroud)