reactjs - 能
问题描述
我想知道我的选项在反应中是否可以有多个值。
谁能帮助我如何为我的选择增加新的价值?如您所见,“value2”不是正确的方法。
const handleSelect = e => {
const { target } = e;
setAccount(target.value);
setAccId(target.value2);
};
console.log("account", account);
return (
<Card width bold>
New Transaction
<select
value={account}
onChange={e => handleSelect(e)}
className="transaction__select"
>
<option>Choose acc</option>
{usersAccounts &&
usersAccounts.map(acc => (
<option value={acc.accountNumber} value2={acc.id} key={acc.id}>
{acc.accountNumber}
</option>
))}
我找到了 JSON 的解决方案,以及解决这个问题的其他方法,但我不知道如何在反应中为我的代码创造更多价值。
解决方案
如果您有权访问userAccounts
,请将option
值设置index
为数组中帐户的 。然后调用setAccount
并setAccId
使用传递的索引。否则,您可以使用data
属性。见https://reactjs.org/blog/2017/09/08/dom-attributes-in-react-16.html
用于index
访问数组
const handleSelect = e => {
const { target } = e;
setAccount(userAccounts[target.value].accountNumber);
setAccId(userAccounts[target.value].id);
};
console.log("account", account);
return (
<Card width bold>
New Transaction
<select
value={account}
onChange={e => handleSelect(e)}
className="transaction__select"
>
<option>Choose acc</option>
{usersAccounts &&
usersAccounts.map((acc, idx) => (
<option value={idx} key={acc.id}>
{acc.accountNumber}
</option>
))}
使用dataset
const handleSelect = e => {
const { target } = e;
setAccount(target.value);
setAccId(target.dataset.accountid);
};
console.log("account", account);
return (
<Card width bold>
New Transaction
<select
value={account}
onChange={e => handleSelect(e)}
className="transaction__select"
>
<option>Choose acc</option>
{usersAccounts &&
usersAccounts.map(acc => (
<option value={acc.accountNumber} data-accountid={acc.id} key={acc.id}>
{acc.accountNumber}
</option>
))}
推荐阅读
- php - php中的Mailshake API集成
- angular - 如何将选定的下拉值传递给组件
- html - 在 CSS 中使用根元素和 rem 缩放字体
- python - 点击使用 Selenium 的一系列问题——无法通过第一个问题
- azure - Azure Monitor / Application Insights 未显示错误堆栈跟踪
- php - gRPC 在终端中工作,但不在 laravel 项目中
- python-3.x - 如何将自定义函数应用于熊猫数据框的 2 列?
- gradle - 多项目构建:为每个子项目执行功能
- flask - 如何在 jinja select 中发送 2 个参数?
- reactjs - 如何将当前索引传递给 react-image-lightbox?