답변:
이것은해야합니다 :
<Text>
Hi~{"\n"}
this is a test message.
</Text>
<Text>{content}</Text>
있습니까?
var Br = React.createClass({ render() { return ( <Text> {"\n"}{"\n"} </Text> ) } })
<Text>{comments}</Text>
우리는 그 {\n}
논리를 사용할 수 없습니다 . 그렇다면 어떻게?
<Component text={"Line1\nLine2"} />
대신 <Component text="Line1\nLine2" />
(통지 추가 중괄호)
당신은 또한 할 수 있습니다 :
<Text>{`
Hi~
this is a test message.
`}</Text>
문자열에 내용을 삽입 할 필요가 없기 때문에 제 생각에는 더 쉽습니다. 한 번만 감싸면 모든 줄 바꿈이 유지됩니다.
white-space: pre-line;
사용하다:
<Text>{`Hi,\nCurtis!`}</Text>
결과:
안녕,
커티스!
{'\n'}
줄 바꿈으로 사용할 수 있습니다 . 안녕하세요 ~ { '\ n'} 테스트 메시지입니다.
더 나은 방법 :을 사용 styled-components
하면 다음과 같이 할 수 있습니다.
import React, { Component } from 'react';
import styled from 'styled-components';
const Text = styled.Text`
text-align: left;
font-size: 20px;
`;
export default class extends Component {
(...)
render(){
return (
<View>
<Text>{`
1. line 1
2. line 2
3. line 3
`}</Text>
</View>
);
}
}
다음과 같이 할 수 있습니다.
{ '계정 만들기 \ n 계정'}
가장 깨끗하고 유연한 방법 중 하나는 템플릿 리터럴을 사용하는 것 입니다.
이것을 사용하면 텍스트 본문에 문자열 변수의 내용을 표시하려는 경우 더 깨끗하고 간단합니다.
(백틱 문자 사용법에 유의하십시오)
const customMessage = 'This is a test message';
<Text>
{`
Hi~
${customMessage}
`}
</Text>
결과
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-native-new-break-line-example
줄을 바꾸려는 곳에 { "\ n"}를 사용하십시오.
<br>
배열에 정의 된 텍스트 줄 사이 에 삽입하는 다른 방법 :
import react, { Fragment } from 'react';
const lines = [
'One line',
'Another line',
];
const textContent =
lines.reduce(items, line, index) => {
if (index > 0) {
items.push(<br key={'br-'+index}/>);
}
items.push(<Fragment key={'item-'+index}>{line}</Fragment>);
return items;
}, []);
그런 다음 텍스트를 변수로 사용할 수 있습니다.
<Text>{textContent}</Text>
사용할 Fragment
수 없는 경우 다음과 같이 정의 할 수 있습니다.
const Fragment = (props) => props.children;
https : //.com/a/44845810/10480776 @Edison D' souza의 대답은 내가 찾던 것과 정확히 일치했습니다. 그러나 문자열의 첫 번째 항목 만 바꿨습니다. 여러 <br/>
태그 를 처리하는 솔루션은 다음과 같습니다 .
<Typography style={{ whiteSpace: "pre-line" }}>
{shortDescription.split("<br/>").join("\n")}
</Typography>
평판 점수 제한으로 인해 게시물에 댓글을 달 수 없습니다.
다음은 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
텍스트와 CSS에서 사용white-space: pre-wrap;
whiteSpace
React Native Text Style Prop 로 표시 되지 않습니다 . 이것은 HTML이 아닙니다.
\n
줄 바꿈하려는 위치를 사용할 수 있습니다 .