我想在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.
我想在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>
其他回答
2021,这适用于REACT状态值(你必须添加空divs,就像返回语句一样)
这一点。setState({form:(<> line 1 <br /> line 2 </>)})
我需要一个在三元运算符中分支的单行解决方案,以保持我的代码很好地缩进。
{foo ? `First line of text\nSecond line of text` : `Single line of text`}
Sublime语法高亮显示有助于突出显示换行字符:
这是一个很好的问题,你可以用多种方法来做这个问题 第一个
<View>
<Text>
Hi this is first line {\n} hi this is second line
</Text>
</View>
这意味着您可以使用{\n}反斜杠n来断行
第二个
<View>
<Text>
Hi this is first line
</Text>
<View>
<Text>
hi this is second line
</Text>
</View>
</View>
这意味着你可以使用另一个<查看>组件里面首先<查看>和包装它周围<文本>组件
快乐的编码
下面是一个使用TypeScript的React(不是React Native)的解决方案。
同样的概念也适用于React Native
import React from 'react';
type Props = {
children: string;
Wrapper?: any;
}
/**
* Automatically break lines for text
*
* Avoids relying on <br /> for every line break
*
* @example
* <Text>
* {`
* First line
*
* Another line, which will respect line break
* `}
* </Text>
* @param props
*/
export const Text: React.FunctionComponent<Props> = (props) => {
const { children, Wrapper = 'div' } = props;
return (
<Wrapper style={{ whiteSpace: 'pre-line' }}>
{children}
</Wrapper>
);
};
export default Text;
用法:
<Text>
{`
This page uses server side rendering (SSR)
Each page refresh (either SSR or CSR) queries the GraphQL API and displays products below:
`}
</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/