reactjs - 移动到另一个选项卡后更改输入值反应 js 挂钩
问题描述
我有标签组件。在里面,我正在使用具有输入字段的 Tab 组件。当我移至另一个选项卡时,输入字段值会更改。我在下面附上了截图.. Tab1
在那里,我将“xxx”作为名称输入字段。
Tab2
然后我移到了第二个选项卡。现在用户名输入字段显示“xxx”,第一个选项卡的名称输入字段值。
我的代码是:
const [name, setName] = useState('');
const [GSTIN, setGSTIN] = useState('');
const [address, setAddress] = useState('');
const [city, setCity] = useState('');
const [postalCode, setPostalCode] = useState('');
const [country, setCountry] = useState('');
const [phone, setPhone] = useState('');
const [userName, setUserName] = useState('');
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const [confirmPassword, setConfirmPassword] = useState('');
<Tabs>
<Tab label={'Company Details'} tabName={'CompanyDetails'}>
<div className="form">
<div>
<label htmlFor="name">Name</label>
<input
type="text"
id="name"
placeholder="Enter name"
value={name}
onChange={(e) => setName(e.target.value)}
required
/>
</div>
<div>
<label htmlFor="gstin">GSTIN</label>
<input
type="text"
id="gstin"
placeholder="Enter GSTIN"
value={GSTIN}
onChange={(e) => setGSTIN(e.target.value)}
required
/>
</div>
<div>
<label htmlFor="address">Address</label>
<input
type="text"
id="address"
placeholder="Enter Address"
value={address}
onChange={(e) => setAddress(e.target.value)}
required
/>
</div>
<div>
<label htmlFor="city">City</label>
<input
type="text"
id="city"
placeholder="Enter City"
value={city}
onChange={(e) => setCity(e.target.value)}
required
/>
</div>
<div>
<label htmlFor="postalCode">Postal Code</label>
<input
type="number"
id="postalCode"
placeholder="Enter Postal Code"
value={postalCode}
onChange={(e) => setPostalCode(e.target.value)}
required
/>
</div>
<div>
<label htmlFor="country">Country</label>
<input
type="text"
id="country"
placeholder="Enter Country"
value={country}
onChange={(e) => setCountry(e.target.value)}
required
/>
</div>
<div>
<label htmlFor="phone">Phone</label>
<input
type="text"
id="phone"
placeholder="Enter Phone Number"
value={phone}
onChange={(e) => setPhone(e.target.value)}
required
/>
</div>
</div>
</Tab>
<Tab label={'Admin Details'} tabName={'AdminDetails'}>
<div className="form">
<div>
<label htmlFor="userName">User Name</label>
<input
type="userName"
id="userName"
placeholder="Enter User Name"
required
onChange={(e) => setUserName(e.target.value)}
/>
</div>
<div>
<label htmlFor="email">Email Address</label>
<input
type="email"
id="email"
placeholder="Enter email"
required
onChange={(e) => setEmail(e.target.value)}
/>
</div>
<div>
<label htmlFor="passowrd">Password</label>
<input
type="password"
id="password"
placeholder="Enter password"
required
onChange={(e) => setPassword(e.target.value)}
/>
</div>
<div>
<label htmlFor="confirmPassword">Confirm Password</label>
<input
type="password"
id="confirmPassword"
placeholder="Enter confirm password"
required
onChange={(e) => setConfirmPassword(e.target.value)}
/>
</div>
</div>
</Tab>
</Tabs>
解决方案
将输入类型更改为“文本”并添加一个值道具。
<label htmlFor="userName">User Name</label>
<input
type="userName"
id="userName"
value={userName}
placeholder="Enter User Name"
required
onChange={(e) => setUserName(e.target.value)}
/>
推荐阅读
- javascript - bootstrap4输入文件上传不会在输入中显示上传的文件名??如何使用角度解决
- javascript - 处理 Laravel API 时如何设计路由而不是返回 Laravel 视图?
- python - 如何在字典中插入用户输入 - python3
- python - 使用 Python 将所有文件从 SFTP 文件夹下载到带有日期的本地文件夹
- javascript - 禁用 jquery 提交按钮,直到填写所有表单输入
- java - java.lang.SecurityException:“被动”位置提供程序需要 API 级别 26 的 ACCESS_FINE_LOCATION 权限
- powerbi - Power BI 中的多列排序
- ruby-on-rails - Sidekiq 导轨问题
- excel - 如何更改 Excel 工作簿方向和纸张大小(vb.net)
- php - laravel单路由403禁止错误?