回答:
これはそれを行うはずです:
<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>
);
}
}
このように使ってみてください
<text>{`${val}\n`}</text>
次のようにして行うことができます。
{'アカウントを作成\ nあなたのアカウント'}
最もクリーンで柔軟な方法の1つは、テンプレートリテラルを使用することです。
これを使用する利点は、文字列変数の内容をテキスト本文に表示したい場合、より簡潔で簡単です。
(バックティック文字の使用に注意してください)
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://stackoverflow.com/a/44845810/10480776 @Edison D'souzaの答えは、まさに私が探していたものでした。ただし、それは文字列の最初の出現を置き換えるだけでした。これが複数の<br/>
タグを処理するための私の解決策です:
<Typography style={{ whiteSpace: "pre-line" }}>
{shortDescription.split("<br/>").join("\n")}
</Typography>
申し訳ありませんが、評判スコアの制限により、彼の投稿にはコメントできませんでした。
TypeScriptを使用した(React Nativeではなく)Reactのソリューションを次に示します。
同じ概念を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
改行したいところに使用できます。