我遇到了这个奇怪的问题,如果用户没有 Select 轨迹,我会动态地呈现"无当前轨迹",但如果用户 Select 了,我想呈现一些关于轨迹信息和按钮的内容.所有这些都被包装成"CurrentTrailBottomSheetContainer"样式.由于某些原因,该样式仅应用于当CurentTrail==unfined时的True语句,但如果该语句为False,则不会应用"CurrentTrailBottomSheetContainer"样式,即使该False语句仍被包装在.有人知道可能会出什么问题吗?

多伦多证券交易所代码:

<View style={styles.currentTrailBottomSheetContainer}>
            {currentTrail == undefined ? (
              <Text style={styles.currentTrailBottomSheetText}>No Current Trail</Text>
            ) : (
              <View style={styles.currentTrailContainer}>
                <View style={styles.currentTrailTextContainer}>
                  <Text style={styles.currentTrailBottomSheetText}>{currentTrail.trailName}</Text>
                </View>
                <View style={styles.currentTrailSettingsContainer}>
                  <TouchableOpacity style={styles.currentTrailInfoButton}>
                    <Text style={{ textAlign: "center" }}>INFO</Text>
                  </TouchableOpacity>
                  <TouchableOpacity style={styles.currentTrailEditButton}>
                    <Text style={{ textAlign: "center" }}>EDIT</Text>
                  </TouchableOpacity>
                  <TouchableOpacity style={styles.currentTrailRemoveButton}>
                    <Text style={{ textAlign: "center" }}>X</Text>
                  </TouchableOpacity>
                </View>
              </View>
            )}
          </View>

包装条件呈现的样式.

currentTrailBottomSheetContainer: {
    height: "auto",
    width: "100%",
    marginBottom: 20,
    borderWidth: 5,
  },
currentTrailContainer: { flex: 1, flexDirection: "column", alignContent: "space-between", justifyContent: "space-between", },

image of border working like it should (Thick black border)

image of border not wrapping the current trail part of the view (Thick Black Border)

我希望"测试1"和"|信息|编辑|X|"的边框与"无当前踪迹"的边框一样.

推荐答案

flex: 0currentTrailContainer相加(example)

import {
  Text,
  SafeAreaView,
  StyleSheet,
  TouchableOpacity,
  View,
} from 'react-native';
import { useState } from 'react';

export default function App() {
  const [currentTrail, setCurrentTrail] = useState(true);
  return (
    <SafeAreaView style={styles.container}>
      <TouchableOpacity
        style={styles.currentTrailInfoButton}
        onPress={() => {
          setCurrentTrail(() => !currentTrail);
        }}>
        <Text style={{ textAlign: 'center' }}>Toggle</Text>
      </TouchableOpacity>

      <View style={styles.currentTrailBottomSheetContainer}>
        {currentTrail ? (
          <Text style={styles.currentTrailBottomSheetText}>
            No Current Trail
          </Text>
        ) : (
          <View style={styles.currentTrailContainer}>
            <View style={styles.currentTrailTextContainer}>
              <Text style={styles.currentTrailBottomSheetText}>
                {currentTrail.trailName}
              </Text>
            </View>
            <View style={styles.currentTrailSettingsContainer}>
              <TouchableOpacity style={styles.currentTrailInfoButton}>
                <Text style={{ textAlign: 'center' }}>INFO</Text>
              </TouchableOpacity>
              <TouchableOpacity style={styles.currentTrailEditButton}>
                <Text style={{ textAlign: 'center' }}>EDIT</Text>
              </TouchableOpacity>
              <TouchableOpacity style={styles.currentTrailRemoveButton}>
                <Text style={{ textAlign: 'center' }}>X</Text>
              </TouchableOpacity>
            </View>
          </View>
        )}
      </View>
    </SafeAreaView>
  );
}

const styles = StyleSheet.create({
  currentTrailBottomSheetContainer: {
    height: 'auto',
    width: '100%',
    marginBottom: 20,
    borderWidth: 5,
  },
  currentTrailContainer: {
    flex: 0, // Add flex:0 this will ensure that the view will get the space it requires
    flexDirection: 'column',
    alignContent: 'space-between',
    justifyContent: 'space-between',
  },
});

React-native相关问答推荐

不能总是在 Chrome 中设置 React Native 断点

RNMK - 超级表达式必须为空或函数

如何将谷歌反向地理编码与 React Native Expo 结合使用?

withNavigation 只能用于导航器的视图层次 struct

如何更改 React Native(android)应用程序的远程推送通知图标

如何在 React Native 中本地存储不是字符串的数据

TypeError:传播不可迭代实例的无效try

是否可以在 React Native 中隐藏BugReporting extraData?

可以在没有 await 关键字的情况下调用异步函数吗?

FlatList contentContainerStyle -> justifyContent: 'center' 导致滚动问题

React Native Remote Debugger 在 Chrome 中显示缓存的包

React Navigation TabNavigator:在选项卡更改时重置上一个选项卡

React native - 创建单例模式的最佳方式

如何将 Tensorflow 与 react-native 一起使用?

如何在 React Native 中优化图像

如何将props传递给 React Navigation 导航器中的组件?

React Native 从导航堆栈中清除上一个屏幕

React Native 将状态中的数组值应用为 Picker 项

尽管 TypeScript 编译器错误,为什么我的 React Native 应用程序构建成功?

Super expression must either be null or a function, not undefined