我想在React Native的文本组件中插入一个新行(如\r\n, <br />)。

如果我有:

<text>
<br />
Hi~<br />
this is a test message.<br />
</text>

然后React Native渲染Hi~这是一个测试消息。

它是可能的渲染文本添加一个新的行像这样:

Hi~
this is a test message.

当前回答

如果你从状态变量或道具中获取数据,Text组件有一个minWidth, maxWidth样式道具。

例子

const {height,width} = Dimensions.get('screen');

const string = `This is the description coming from the state variable, It may long thank this` 

<Text style={{ maxWidth:width/2}}>{string}</Text>

这将显示屏幕宽度的50%的文本

其他回答

在需要换行的地方使用{"\n"}

解决方案1:

<Text>
  line 1{"\n"}
  line 2
</Text>

解决方案2:

 <Text>{`
  line 1
  line 2
 `}</Text>

解决方案3:

以下是我处理多个<br/>标签的解决方案:

<Text style={{ whiteSpace: "pre-line" }}>
    {"Hi<br/> this is a test message.".split("<br/>").join("\n")}
</Text>

解决方案4:

使用maxWidth自动换行

<Text style={{ maxWidth:200}}>this is a test message. this is a test message</Text>

最好的方法使用列表,如UL或OL,并做一些样式,如使列表样式none,你可以使用<li> dhdhhd </li>

如果您要显示来自状态变量的数据,请使用此方法。

<Text>{this.state.user.bio.replace('<br/>', '\n')}</Text>

我使用p标签的新行。这里我粘贴了代码,这对大家都有帮助。

const new2DArr =  associativeArr.map((crntVal )=>{
          return <p > Id :  {crntVal.id} City Name : {crntVal.cityName} </p>;
     });