javascript - 在 React Native 中使用三元运算符和 useState
问题描述
我的代码中有三元运算符的问题
- I 2 状态在按下按钮时保持真/假:
在这里(对不起,我在块代码中格式化它时遇到问题)
const [lineChecked, setLineChecked] = useState(false);
const [pieChecked, setPieChecked] = useState(false);
这是带有 onPress 的 Touchable Opacity,我指定将 1 状态转为 true,将其他状态转为 false(我有 2 个 - 另一个相反):
<TouchableOpacity
onPress={() => {
setPieChecked(true);
setLineChecked(false);
}}
>
我想要完成的是,当我按下 1 个可触摸的不透明度图形 X 时,将显示另一个图形,当我按下另一个可触摸的不透明度时,将呈现另一个图形,初始状态是没有任何图形被呈现。
这是我尝试过的:
<View style={styles.graphsPart}>
{lineChecked == "true" ? (
<LineChart
data={data}
width={screenWidth - 10}
height={220}
chartConfig={chartConfig}
yAxisLabel="₪"
/>
) : null}
{pieChecked == "true" ? (
<LineChart
data={dataTwo}
width={screenWidth - 10}
height={220}
chartConfig={chartConfig}
yAxisLabel="₪"
/>
) : null}
</View>
建议??
解决方案
(true == 'true') === false
您需要与布尔值 ( true
) 进行比较,而不是字符串 ( 'true'
)。
更好的是,您可以检查一般真实性:
const val = true
const result = val ? 'yes' : 'no'
// if val is a boolean, this will work the same as
// `val === true ? 'yes' : 'no'`
推荐阅读
- java - JUnit4 中静态内部测试类的嵌套测试设置
- ios - 如果我在旋转设备“释放对象的校验和不正确”时调用“insertRows”,UITableView 会崩溃
- python-3.x - 除了选择最大概率类标签之外,对分割图像进行阈值处理有哪些不同的方法
- javascript - P5.js draw() 函数以错误的顺序执行 For 循环
- shell - jenkinsfile 中意外标记“(”附近的语法错误
- angular - 是否可以使用 Angular 在显示的列表中选择一个元素
- lotus-notes - 无法读取字段,因为它在尝试打开新表单时显示错误“操作员或 @function 时间/日期预期的数据类型不正确”
- java - 有没有办法在春天重新加载自动装配的实例或替换自动装配的行为
- apache-spark - 设计- Kafka Producer 可以写成 Spark-job 吗?
- sql - 如何避免在 Excel 中以明文形式存储数据库密码?