javascript - React - JSX 在条件渲染上没有改变
问题描述
我正在我的代码中进行条件渲染,其中我需要根据每次更改时的状态更改调用的组件。默认选项是未付。当我选择第一次付费时,状态更改为已付费,组件也更改为已付费,但之后如果我更改为未付费状态正在更改,但组件卡在已付费状态。可能是什么问题?附上代码。
import React, { useState } from "react";
import Paid from "./Paid";
import Unpaid from "./Unpaid";
const Payment = () => {
const [paid, setPaid] = useState(0);
return (
<React.Fragment>
<div className="container">
<br />
<div className="row">
<div className="col-sm-4">
<select
className="browser-default custom-select"
onChange={(option) => setPaid(option.target.value)}
required
>
<option value="0">Unpaid</option>
<option value="1">Paid</option>
</select>
</div>
<div className="col-sm-8"></div>
</div>
<br />
<div>{paid ? <Paid /> : <Unpaid />}</div>
</div>
</React.Fragment>
);
};
export default Payment;
解决方案
添加+
将字符串值转换为数字0
或1
onChange={(option) =>{let val=+option.target.value ;setPaid(val);}}
let a="0"
let b="1"
console.log(+a,+b)
let c=+a
c? console.log("test 1"):console.log("test 2")
推荐阅读
- windows - 从 Azure Databricks 中的 Windows C 驱动器读取 csv
- spring - 如何自动化频繁调用 API
- salesforce - 如何总结交叉引用自定义对象的汇总关系?
- angular - Websocket wss 连接在本地主机上的 Firefox 89 中不起作用
- laravel - 如何防止 Laravel 在“has”查询中剥离对某些关系的原始约束?
- c - 我可以使用 c 语言中的文件处理向文件添加多行但我在开始时得到一个额外的空行检查代码任何 hel
- javascript - 创建记录时获取当前用户。奥多 14
- r - 如何绘制具有多个变量的图?
- reactjs - 子组件在数组 React Native 中未更新
- amazon-web-services - 使用 Nuxt.js 代理的 POST 方法中的 AWS Amplify 405 MethodNotAllowed 错误