【发布时间】:2020-03-04 11:36:22
【问题描述】:
我有一个单词列表:
document [ paragraph [w1, w2, w3 ] , [w4, w5, w6] , [w7, ...], ... ]
我想用双列表渲染在 React Js 中渲染它们:
<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
【问题讨论】:
-
你在哪里添加 br?我的意思是在代码中。
-
包装看起来应该使用 CSS 来解决...
-
如果您在
<span>中插入<br>,它不会移动到下一行,因为span默认情况下是一个内联元素。但是,我无法判断这一点,因为您没有在结果旁边展示您的实现。
标签: javascript html reactjs rendering overflow