【发布时间】:2020-02-18 22:27:08
【问题描述】:
如果我使用 React hooks 有以下状态:
const [users, setUsers] = useState([
{
user: "Bob",
cost: 25,
},
{
user: "Paul",
cost: 30,
},
])
我可以像这样映射状态:
{users.map((user, index) => (
<div key={index}>
<input
type="text"
value={user.user}
name="user"
onChange={handleFoo(index)}
/>
<input
type="number"
value={user.cost}
name="cost"
onChange={handleFoo(index)}
/>
</div>
))}
然而,当只编辑一个输入时,我正在努力更新状态。
const handleFoo = index => e => {
const { name, value } = e.target
let newArr = [...users]
newArr[index] = {[name]: value }
setUsers(newArr)
}
上面的 semi 工作,但它只更新一个参数。使用上述状态将按以下方式更新(例如)
[
{
user: "Bob",
cost: 25,
},
{
cost: 30,
},
]
如何传播 [index] 并只更新我需要的部分?
一个。
【问题讨论】:
标签: reactjs react-hooks gatsby