Estoy probando diferentes patrones en una nueva aplicación React, en este caso tengo una tienda redux que contiene una serie de proyectos de objetos. Cuando se carga el componente, despacho una nueva acción que obtiene todos los proyectos y configuro la tienda con los nuevos valores, en este caso la lista se representa correctamente. Cuando despacho las mismas acciones desde un elemento secundario del mismo componente, el estado redux se actualiza, el componente principal se vuelve a procesar pero la lista sigue siendo la misma.

export const ProjectList: React.FC = () ={amp}gt; { //When projects change the component should rerender with the new store const { projects, isLoading, errors } = useSelector((store: IAppState) ={amp}gt; store.projectState); const dispatch = useDispatch(); const { setActiveProject } = useActiveProjectValue(); const { setIsNewTask } = useIsNewTaskValue(); useEffect(() ={amp}gt; { console.log('called'); dispatch(getProjectsAction()); }, []); return ( {amp}lt;div className="ProjectList"{amp}gt; {!isLoading ? ( projects.map((project: IProject) ={amp}gt; ( {amp}lt;ProjectListItem key={project.docId ? project.projectId : uuid()} handleClick={() ={amp}gt; handleClick(project)} project={project} {amp}gt; {project.name} {amp}lt;/ProjectListItem{amp}gt; )) ) : ( {amp}lt;p{amp}gt;Loading projects{amp}lt;/p{amp}gt; )} {errors {amp}amp;{amp}amp; {amp}lt;p{amp}gt;{errors}{amp}lt;/p{amp}gt;} {amp}lt;/div{amp}gt; ); }; 

También he tratado de cambiar useEffect con useMemo y agregar una dependencia de proyecto a esta función, en este caso funciona, pero parece desencadenar la acción demasiadas veces:

 useEffect(() ={amp}gt; { dispatch(getProjectsAction()); }, [projects]); 

¿Algún consejo / solución? ¡Gracias!