为了澄清起见,请进行编辑以确保它在一个钩子周围,因为即使另一个问题不使用钩子也被标记为重复。另一条评论提到使用useEffect
,所以我现在将对此进行调查,但是如果有人可以在下面演示或定价的话,那么附加指导会很棒!
原件:
所以我有一个状态(editableSalesperson
)设置为一个空对象,我想使用setEditableSalesperson
用一个现有对象更新它,然后传递到我的ModifySalespersons
组件中进行编辑,但是更新操作实际上并不是在更新状态。
当我运行editSalesPerson
时,我在控制台日志中看到该对象已正确输入,但是当它命中setEditableSalesperson(salesperson);
时,又在下一行的控制台日志中检查了状态值,仍然是空的,并且没有变化。
这是代码。我试图将其简化为相关信息,但是如果您需要更多信息,可以将其发布。
import React from 'react';
function Salespersons(props){
const [editableSalesperson, setEditableSalesperson] = React.useState({})
function editSalesPerson(salesperson){
console.log(salesperson);
setEditableSalesperson(salesperson);
console.log(editableSalesperson);
}
return (
<>
<ModifySalespersons
isOpen={isOpen}
setIsOpen={setIsOpen}
salesperson={editableSalesperson}
onSubmit={handleSubmit}
/>
{/* code here */}
<td className="px-6 py-4 whitespace-no-wrap text-right text-sm leading-5 font-medium">
<button onClick={ () => editSalesPerson(salesperson) } className="text-indigo-600 hover:text-indigo-900">Edit</button>
</td>
</>
);
}
export default Salespersons;