Javascript 为什么我的功能组件没有重新渲染?

Javascript 为什么我的功能组件没有重新渲染?,javascript,reactjs,Javascript,Reactjs,我有一个功能组件,通过单击按钮运行此功能: const dineroAsignado=parseFloat((dependencia.porcentaje_asignado*prespuesto.cantidadPresupuesto/100)。toFixed(2))+1000; const centrosTrabajo=受抚养人; const index=centrosTrabajo.findIndex(ct=>ct.id\u centro\u trabajo==dependencia.id\

我有一个功能组件,通过单击按钮运行此功能:

const dineroAsignado=parseFloat((dependencia.porcentaje_asignado*prespuesto.cantidadPresupuesto/100)。toFixed(2))+1000;
const centrosTrabajo=受抚养人;
const index=centrosTrabajo.findIndex(ct=>ct.id\u centro\u trabajo==dependencia.id\u centro\u trabajo);
centrosTrabajo[index].porcentaje_asignado=dineroassignado*100/prespuesto.cantidadPresupuesto;
setDependencias(centrosTrabajo);
一切正常,但组件不会在更新时重新渲染。 我不明白为什么

你能帮帮我吗? 谢谢

发行 您正在修改状态引用,而不是创建一个新引用并更新它

const centrosTrabajo = dependencias; // <-- state reference

const index = centrosTrabajo.findIndex(
  (ct) => ct.id_centro_trabajo === dependencia.id_centro_trabajo
);
centrosTrabajo[index].porcentaje_asignado =
  (dineroAsignado * 100) / presupuesto.cantidadPresupuesto; // <-- mutation!!

setDependencias(centrosTrabajo); // saved reference back in state
const centrosTrabajo=dependencias;//ct.id_centro_trabajo==dependencia.id_centro_trabajo
);
centrosTrabajo[索引].porcentaje_asignado=

(dineroAsignado*100)/prespuesto.cantidadPresupuesto;//我们使用
setState()
更新状态,这通常会触发重新渲染。我看不出它被称为?它是一个功能组件。setState是最后一行setDependencias(centrosTrabajo)。“我在单击按钮时运行此函数:”-这不是函数。请显示完整的功能
const centrosTrabajo = [...dependencias]; // <-- create new array reference

const index = centrosTrabajo.findIndex(
  (ct) => ct.id_centro_trabajo === dependencia.id_centro_trabajo
);

centrosTrabajo[index] = { // <-- create new object and copy existing
  ...centrosTrabajo[index],
  porcentaje_asignado: (dineroAsignado * 100) / presupuesto.cantidadPresupuesto,
};

setDependencias(centrosTrabajo); // <-- update state with new reference