При передачи в функцию параметров из дочернего элемента страница не грузится
Manipulator.tsx родительский элемент
const handleAdd = (index:string) => {
const l = boxes.length + 1;
const a = "Box-" + l;
alert(index)
const New = {
id: a,
order: boxes.length,
};
//
setBoxes(boxes => [...boxes, New])
};
...
return(
<Box
key={box.id}
boxNumber={box.id}
handleDrag={handleDrag}
handleDrop={handleDrop}
handleAdd={handleAdd}
/>
)
Box.tsx
import React from 'react'
import styles from "./manipulator.module.scss"
type Props = {
boxNumber: string;
handleDrag:any;
handleDrop:any;
handleAdd: any
}
const Box = ({ boxNumber, handleDrag, handleDrop,handleAdd } :Props) => {
return (
<div className={styles.wrap_box}>
<div className={styles.addTop} >+</div>
<div
className={styles.box}
draggable={true}
id={boxNumber}
onDragOver={(ev) => ev.preventDefault()}
onDragStart={handleDrag}
onDrop={handleDrop}
>
{boxNumber}
<input/>
</div>
<div className={styles.addBottom} onClick={handleAdd('Привет')}>+</div>
</div>
)
}
export default Box
после того как я начинаю передавать параметры в функцию handleAdd страница бесконечно грузится.
В чем может быть проблема? без параметров все хорошо работает
Ответы (1 шт):
Автор решения: Deeps
→ Ссылка
В пропсы событий, в твоём случае onClick, нужно передавать саму функцию, а не её вызов:
</div>
<div className={styles.addBottom} onClick={handleAdd}>+</div>
</div>
Если нужно передать аргументы в вызываемую функцию, как в этом случае, заверни её в другую функцию:
</div>
<div className={styles.addBottom} onClick={() => handleAdd('Привет')}>+</div>
</div>