在 React js 的 <p> 标签中将单词列表呈现为 <span>
Render list of words as <span> in a <p> tag in React js
我有一个单词列表:
document [ paragraph [w1, w2, w3 ] , [w4, w5, w6] , [w7, ...], ... ]
我想用双列表渲染在 React Js 中渲染它们:
A <Document>
组件使用 map() 渲染 <Pargraph>
的列表。 <Pargraph>
渲染列表
<Word>
使用 map()。
我的问题是当我的 <paragraph>
太长时,文字会超出屏幕范围。我试图在单词之间插入 <br>
但它不适用。最终结果渲染 html 是:
<div> # my Document
<p> # my paragraph
<span> <span> <span> ... <br/> <span> <span>
</p>
<p>
...
</p>
</div>
问题是 </br>
不适用,这可能是包装单词的正确标签?
这里是一张照片=>
overflow rendering
更新
这里是渲染这个的反应代码:
文档 => 段落
export default class Document extends React.Component<
DocumentProps,
DocumentState
> {
constructor(props: Readonly<DocumentProps>) {
super(props);
}
render = () => {
return (
<div id="documentContainer">
{this.props.document.pargraphs.map((paragraph, index) => {
return (
<Paragraph
key={index}
></Paragraph>
);
})}
</div>
);
};
}
段落 => 单词 [此处 <br />
]
export default class Paragraph extends React.Component<ParagraphProps, ParagraphState> {
constructor(props: Readonly<ParagraphProps>) {
super(props);
}
render = () => {
return (
<p className="rowContainer">
{this.props.text.map((word, index) => {
console.log(index);
if (index === 10) return <br />;
return <Word word={word} key={index}></Word>;
})}
</p>
);
};
字数:
export default class Word extends React.Component<WordProps> {
constructor(props: Readonly<WordProps>) {
super(props);
}
render = () => {
return <span className="word">{this.props.word}</span>;
};
}
文档有 flex css: column-container
这绝对是 CSS
相对于 React
的问题。
您是否尝试过在 100%
处为您的 p
组件设置 maxWidth
?
或者也许您可以检查 span
元素上的 display
属性,我认为前面有检查器可以很快解决它。
我通过使用 white-space: initial in every span inside paragraph 和 white-space: pre-wrap in paragraph.
解决了溢出问题
我有一个单词列表:
document [ paragraph [w1, w2, w3 ] , [w4, w5, w6] , [w7, ...], ... ]
我想用双列表渲染在 React Js 中渲染它们:
A <Document>
组件使用 map() 渲染 <Pargraph>
的列表。 <Pargraph>
渲染列表
<Word>
使用 map()。
我的问题是当我的 <paragraph>
太长时,文字会超出屏幕范围。我试图在单词之间插入 <br>
但它不适用。最终结果渲染 html 是:
<div> # my Document
<p> # my paragraph
<span> <span> <span> ... <br/> <span> <span>
</p>
<p>
...
</p>
</div>
问题是 </br>
不适用,这可能是包装单词的正确标签?
这里是一张照片=> overflow rendering
更新
这里是渲染这个的反应代码:
文档 => 段落
export default class Document extends React.Component<
DocumentProps,
DocumentState
> {
constructor(props: Readonly<DocumentProps>) {
super(props);
}
render = () => {
return (
<div id="documentContainer">
{this.props.document.pargraphs.map((paragraph, index) => {
return (
<Paragraph
key={index}
></Paragraph>
);
})}
</div>
);
};
}
段落 => 单词 [此处 <br />
]
export default class Paragraph extends React.Component<ParagraphProps, ParagraphState> {
constructor(props: Readonly<ParagraphProps>) {
super(props);
}
render = () => {
return (
<p className="rowContainer">
{this.props.text.map((word, index) => {
console.log(index);
if (index === 10) return <br />;
return <Word word={word} key={index}></Word>;
})}
</p>
);
};
字数:
export default class Word extends React.Component<WordProps> {
constructor(props: Readonly<WordProps>) {
super(props);
}
render = () => {
return <span className="word">{this.props.word}</span>;
};
}
文档有 flex css: column-container
这绝对是 CSS
相对于 React
的问题。
您是否尝试过在 100%
处为您的 p
组件设置 maxWidth
?
或者也许您可以检查 span
元素上的 display
属性,我认为前面有检查器可以很快解决它。
我通过使用 white-space: initial in every span inside paragraph 和 white-space: pre-wrap in paragraph.
解决了溢出问题