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