我想在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.

当前回答

如果有人正在寻找一个解决方案,你想要在数组中的每个字符串有一个新的行,你可以这样做:

import * as React from 'react';
import { Text, View} from 'react-native';


export default class App extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
      description: ['Line 1', 'Line 2', 'Line 3'],
    };
  }

  render() {
    // Separate each string with a new line
    let description = this.state.description.join('\n\n');

    let descriptionElement = (
      <Text>{description}</Text>
    );

    return (
      <View style={{marginTop: 50}}>
        {descriptionElement}
      </View>
    );
  }
}

请参阅小吃现场示例:https://snack.expo.io/@cmacdonnacha/react- nativenew -break-line-example

其他回答

为什么这么努力工作?现在是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>
    )
}}

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

方法一:只要在下面加上“\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>
Hi~{"\n"}
this is a test message.
</Text>

我需要一个在三元运算符中分支的单行解决方案,以保持我的代码很好地缩进。

{foo ? `First line of text\nSecond line of text` : `Single line of text`}

Sublime语法高亮显示有助于突出显示换行字符:

你还可以:

<Text>{`
Hi~
this is a test message.
`}</Text>

在我看来更简单,因为你不需要在字符串中插入东西;只要换行一次,就能保留所有换行符。