【发布时间】:2019-08-23 13:36:51
【问题描述】:
我正在处理事务表。我只想添加、删除和更新表中的事务。
我有一个“Transactions.js”功能组件,它具有交易状态(使用钩子),我还有一个“TransactionsForm.js”组件,它接收“setTransactions”函数作为来自“Transactions.js”的道具添加或更新交易状态
Transactions.js
const [transactions, setTransactions] = useReducer(
transactionsReducer,
fetchTransactions()
)
TransactionsForm.js
const [values, setValues] = useState({
description: '',
transactionType: '',
date: '',
category: '',
amount: ''
})
const handleChange = event => {
const { name, value } = event.target
setValues({ ...values, [name]: value })
}
const handleAdd = () => {
setTransactions({
type: 'add',
transactionType: 'income',
description: values.description,
date: values.date,
category: values.category,
amount: values.amount
})
}
const handleUpdate = () => {
setTransactions({
type: 'update',
id: 1,
transactionType: 'income',
description: values.description,
date: values.date,
category: values.category,
amount: values.amount
})
}
const handleSubmit = event => {
event.preventDefault()
// 1. handleUpdate() if the user is updating an existing transaction
// 2. handleAdd() if the user is adding new transaction
}
如您所见,我有两个函数,handleAdd 和 handleUpdate。但我需要根据用户的操作(更新或添加)调用其中一个,如果是更新,我需要获取事务 ID。
完成此任务的最佳方法是什么?我知道我不应该为添加和更新创建两个单独的表单
【问题讨论】:
标签: reactjs forms components