需求:三個input框,在input框輸入時候,獲取最新值,進行數據更新
思路:name屬性的變量設置的和表單的變量一樣,方便通過name屬性更新值
function TenantManage() {const [formData, setFormData] = useState<formDataType>({ companyName: '', contact: '', phone: '' })/*** 修改input框的回調*/
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {const { name, value } = e.target//setState的函數寫法setFormData((prevState) => ({...prevState,[name]: value,}))
}return (<Input name='companyName' value={formData.companyName} onChange={handleChange} /><Input name='contact' value={formData.contact} onChange={handleChange} /><Input name='phone' value={formData.phone} onChange={handleChange} />)}
[name]: value
?使用了?ES6 的計算屬性名特性
// ES6 計算屬性名語法
const dynamicKey = 'age';
const person = {name: 'John',[dynamicKey]: 30 // 等價于 age: 30
};
總結:將變量的值變成屬性名,得加上[ ] ,不加的話就是更新name屬性的值,但是我們想更新的是companyName、contact、phone這些屬性的值