我想在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 style={{styles.text}}>{`Hi~\nthis is a test message.`}</Text>

其他回答

对此有两种主要的解决方案。

方法一:只要在下面加上“\n”就可以了

<Text>
   First Line {'\n'} Second Line.
</Text>

方法2:在字符串字面量中添加换行符,如下所示。

 <Text>
   `First Line  
   Second Line`.
 </Text>

要了解更多信息,请参考下面的教程。

https://sourcefreeze.com/how-to-insert-a-line-break-into-a-text-component-in-react-native/

只需在Text标签中放入{'\n'}

<Text>

   Hello {'\n'}

   World!

</Text>

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

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

为什么这么努力工作?现在是2020年,创建一个组件来处理这类问题

    export class AppTextMultiLine extends React.PureComponent {
    render() {
    const textArray = this.props.value.split('\n');
return (
        <View>
            {textArray.map((value) => {
               return <AppText>{value}</AppText>;
            })}
        </View>
    )
}}

我知道这是相当古老的,但我提出了一个自动断行的解决方案,允许您以通常的方式传递文本(没有诡计)

我创建了以下组件

import React, {} from "react";
import {Text} from "react-native";

function MultiLineText({children,  ...otherProps}) {

const splits = children.split("\\n")
console.log(splits);
const items = []
for (let s of splits){
  items.push(s)
  items.push("\n")
}

  return (
    <Text {...otherProps}>{items}</Text>
  );
}


export default MultiLineText;

然后你就可以这样使用它了。

<MultiLineText style={styles.text}>This is the first line\nThis is teh second line</MultiLineText>