我的文本中出现了一个有趣的错误.出于某种原因,文本会被随机删除,如下所示:

enter image description here

const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'flex-start',
    backgroundColor: "#ecf0f1",
    width:"100%",
    paddingTop:"5%"
  },
  itemContainer: {
    backgroundColor:"#fff",
    margin:"5%",
    marginTop: 0,
    borderRadius:5,
    width: "90%"
  },
  itemHeaderContainer: {
    padding:15,
    borderColor: "#E4E2E9",
    borderBottomWidth: 1
  },
  itemHeaderText: {
    height:'auto',
    color:"#333",
    fontSize: 23,
    fontWeight: "800",
  },
  itemButtonContainer: {padding:13, flexWrap: 'wrap',  alignItems: 'flex-start', flexDirection:'row'},
  itemButtonText: { fontSize:19, color:"#fff", fontWeight:"800" },
  itemCreateButton: { backgroundColor:"#3F61E7", borderRadius: 5, paddingVertical:10, paddingHorizontal:15},
});

renderTemplate() {
  if(this.state.loaded) {
    return (
      <View style={{width:"100%"}}>

      <View style={styles.itemContainer}>
        <View style={[styles.itemHeaderContainer, {borderBottomWidth: 0}]}>
          <Text style={styles.itemHeaderText}>{this.state.task_data.title}</Text>
          <Text style={{ marginTop:10, fontSize:18, color:"#333", fontWeight:"400" }}>Line 1</Text> 
          <Text style={{ marginTop:10, fontSize:18, color:"#333", fontWeight:"400" }}>Line 2</Text>
          <Text style={{ marginTop:10, fontSize:18, color:"#333", fontWeight:"400" }}>Line 3</Text> 
          <Text style={{ marginTop:10, fontSize:18, color:"#333", fontWeight:"400" }}>Line 4</Text> 
          <Text style={{ marginTop:10, fontSize:18, color:"#333", fontWeight:"400" }}>Line 5</Text> 
        </View>
      </View>

      <View style={[styles.itemContainer, {padding:15}]}>
        <Text style={[styles.itemHeaderText, {}]}>Cut off Text????</Text>
      </View>

      <View style={styles.itemContainer}>
        <View style={styles.itemHeaderContainer}>
          <Text style={styles.itemHeaderText}>Another Section</Text>
        </View>
        <View style={styles.itemButtonContainer}>
            <TouchableHighlight underlayColor='#3F61E7' style={[styles.itemCreateButton, {marginRight: 10}]}>
              <View style={{flexWrap: 'wrap',  alignItems: 'flex-start', flexDirection:'row'}}>
                <Text style={styles.itemButtonText}>Button 1</Text>
              </View>
            </TouchableHighlight>

             <TouchableHighlight underlayColor='#3F61E7' style={styles.itemCreateButton}>
              <View style={{flexWrap: 'wrap',  alignItems: 'flex-start', flexDirection:'row'}}>
                <Text style={styles.itemButtonText}>Button 2</Text>
              </View>
            </TouchableHighlight>
        </View>
      </View>

      <View style={styles.itemContainer}>
        <View style={styles.itemHeaderContainer}>
          <Text style={styles.itemHeaderText}>Existing Documents</Text>
        </View>

        <FlatList data={this.state.task_documents} style={{ paddingBottom:10, paddingHorizontal:0 }} renderItem={
          ({item}) => (

            <View style={{ borderBottomWidth:1, borderColor:"#F1F0F3"}}>
              <View style={[{flexGrow:1, paddingHorizontal:5, flex:1, }]}>
                <Text numberOfLines={1} ellipsizeMode='tail' style={{ flexShrink: 1, fontSize:24, fontWeight:"600",}}>{item.value.title || "No Title"}</Text>
              </View>
            </View>
          )
        } />
      </View>

      </View>
    );
  }
  else return (
    <View style={styles.itemContainer}>
      <View style={[styles.itemHeaderContainer, {borderBottomWidth: 0}]}>
        <Text style={styles.itemHeaderText}>Loading item..</Text>
      </View>
    </View>
  );
}

render() {
  return (
    <ScrollView>
      <View style={styles.container}>
        {this.renderTemplate()}          
      </View>
    </ScrollView>
  );
}

有趣的是,我测试的线路越多,被切断的线路就越多.

  • 如果我把所有的东西从renderTemplate()移到render(),它就不会被切断
  • 如果我完全删除这些行,文本就不会被截断.
  • 如果我替换FlatList返回null或删除它,它不会被切断.
  • 基本上,当我开始随机删除内容时,事情开始以奇怪的方式影响其他元素.

这在其他人身上发生过吗?我做错什么了吗?接受任何建议.

推荐答案

<View style={[styles.itemContainer, { padding: 15 }]}>
  <Text style={styles.itemHeaderText}>Cut off Text????</Text>
</View>

填充物应用于Text组件,而不是View容器:

<View style={styles.itemContainer}>
  <Text style={[styles.itemHeaderText, { padding: 15 }]}>Cut off Text????</Text>
</View>

工作代码:https://snack.expo.io/Hkn9YIC17

React-native相关问答推荐

如何重复使用expo 音频对象S录音?

出现错误:使用 process(css).then(cb) 来使用异步插件

在 React Native 中打开后日期 Select 器不关闭

在 React Native Paper 中更改 TextInput 的文本 colored颜色

迷失在 Ionic、Cordova 等混合应用程序框架中

因 JVM 堆空间耗尽而导致守护进程到期?

ReactNative FlatList 一次渲染所有元素?

我可以在 react-native 中使用 reactJS 库吗?

ScrollView visible Scroll Bar

ScrollView bounce的 2 种不同背景 colored颜色

在 react-native 中设置动态 'initialRouteName'

如何在本地构建 Expo APK

如何在 React Native 中重复图案图像以创建背景?

ListView 和 FlatList 有什么区别?

更改导航标题背景 colored颜色

如何在 React Native 上隐藏 createStackNavigator 的标题?

React 本机矢量图标在当前版本 0.60 上不起作用

从标题中的按钮导航到不同的屏幕

React Navigation 切换背景 colored颜色 和样式 StackNavigator

使用行数react-native文本组件