【发布时间】:2021-02-09 04:00:30
【问题描述】:
我有一个ScrollView,我在其中列出了一些Components。到目前为止,我只在ScrollView 中放置了一个大的Text 组件,它的包装很好。但是现在我创建了一个新的Component(在本例中为ComplexText),包装有点偏离。 (ComplexText 组件被适当地列出了,只是长消息的包装有点滑稽,而且每行包装的最后几个字符从屏幕上掉下来。
这是我的代码的基本形式:
import React, { ReactElement } from "react";
import {ScrollView, View, Text} from "react-native";
interface TextProps {
person: string,
message: string;
}
const ComplexText = ({person, message} : TextProps) : ReactElement => {
return (
<View style={{flexDirection: "row"}}>
<Text textBreakStrategy={"simple"} style={{fontSize: 20, fontWeight: "bold"}}>{person + ": "}</Text>
<Text textBreakStrategy={"simple"} style={{fontSize: 20}}>{message}</Text>
</View>
);
};
const ScrollingComplexText = () : ReactElement => {
return (
<>
<View style={{flex:0.05}} key={"status-bar-background"}/>
<ScrollView style={{backgroundColor: "lightblue"}} key={"scrolling-messages"}>
<ComplexText person={"Samantha"} message={"Hello Anthony."} />
<ComplexText person={"Anthony"} message={"Hello Samantha."} />
<ComplexText person={"System"} message={"User Jonathan has joined the chat, say something to welcome him."} />
<ComplexText person={"Anthony"} message={"Hello Jonathan."} />
<ComplexText person={"Samantha"} message={"Hello Jonathan."} />
<ComplexText person={"Jonathan"} message={"Hello everybody."} />
</ScrollView>
</>
);
};
export default ScrollingComplexText;
这是问题的屏幕截图(如您所知,something 的大部分单词都被切断了):
编辑我也尝试使用FlatList 执行此操作,但我看到的内容完全相同:
import React, { ReactElement } from "react";
import {View, Text, FlatList} from "react-native";
interface TextProps {
person: string,
message: string;
}
const ComplexText = ({person, message} : TextProps) : ReactElement => {
return (
<View style={{flexDirection: "row"}}>
<Text textBreakStrategy={"simple"} style={{fontSize: 20, fontWeight: "bold"}}>{person + ": "}</Text>
<Text textBreakStrategy={"simple"} style={{fontSize: 20}}>{message}</Text>
</View>
);
};
const messageJson = [
{
person: "Samantha",
message: "Hello Anthony."
},{
person: "Anthony",
message: "Hello Samantha."
},{
person: "System",
message: "User Jonathan has joined the chat, say something to welcome him."
},{
person: "Anthony",
message: "Hello Jonathan."
},{
person: "Samantha",
message: "Hello Jonathan."
},{
person: "Jonathan",
message: "Hello Everybody."
}
];
const ScrollingComplexText = () : ReactElement => {
const renderItem = ({item} : {item: TextProps}) => (
<ComplexText person={item.person} message={item.message} />
);
return (
<>
<View style={{flex:0.05}} key={"status-bar-background"}/>
<FlatList
style={{backgroundColor: "lightblue"}}
data={messageJson}
renderItem={renderItem} />
</>
);
};
export default ScrollingComplexText;
【问题讨论】:
标签: reactjs typescript react-native mobile react-tsx