无法在React useState挂钩中更新对象状态

时间:2020-09-21 15:08:05

标签: javascript reactjs react-hooks

为了澄清起见,请进行编辑以确保它在一个钩子周围,因为即使另一个问题不使用钩子也被标记为重复。另一条评论提到使用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;

0 个答案:

没有答案