在
React
中,useState
是一個Hook
,它可以讓函數組件擁有狀態。當想要改變一個對象類型的狀態時,我們需要使用展開運算符(...
)或者Object.assign
來確保狀態是正確地更新。
以下是一個使用 useState
來更新對象的例子:
// App.jsx
import React, { useState } from 'react'function App() {const [user, setUser] = useState({ name: '孫悟空', age: 5000 })function updateUser(newUserData) {setUser({ ...user, ...newUserData })}return (<div><h1>Name: {user.name}</h1><h1>Age: {user.age}</h1><button onClick={() => updateUser({ name: '菩提老祖' })}>修改名字為菩提老祖</button></div>)
}export default App
在這個例子中,updateUser
函數接受一個對象 newUserData
,該對象包含了要更新的屬性。通過使用展開運算符 ...
來復制當前的 user
狀態,并將 newUserData
中的屬性加入到新的對象中,然后用 setUser
更新狀態。這樣可以確保組件狀態的正確更新,避免了引用類型的問題。