Вы вызываете mountLogs () каждый раз, когда свойство изменяется.
Если вы хотите, чтобы оно запускалось только один раз при монтировании, используйте:
useEffect(() => {
mountLogs();
}, []);
Если вы хотите запустите на указанных значениях c, затем вы должны использовать:
useEffect(() => {
mountLogs();
}, [logs, changeDetailState]);
Для однократного запуска его следует использовать, как показано ниже:
import React, { useEffect } from "react";
import Log from "../logs/log";
import "../../scss/logs.scss";
const Logs = ({ logs, changeDetailState, getLogId, onClick, mountLogs }) => {
useEffect(() => {
mountLogs();
}, []);
const logsmap = logs.map((log, i) => (
<Log
onClick={onClick}
getLogId={getLogId}
changeDetailState={changeDetailState}
key={i}
input={log.amount}
description={log.description}
id={i}
/>
));
return <div className="logs">{logsmap}</div>;
};
export default Logs;