В официальной документации React способ повесить функцию на клик выглядит так
import React, { useState } from 'react';
function Example() {
// Объявляем новую переменную состояния "count"
const [count, setCount] = useState(0);
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Нажми на меня
</button>
</div>
);
}
Но использование стрелочных функций в рендере не рекомендуется, т.к. при каждом рендере будет создана новая функция. Правильно ли будет использовать такой способ или кто как решает эту ситуацию
import React, { useState } from 'react';
function Example() {
// Объявляем новую переменную состояния "count"
const [count, setCount] = useState(0);
const plus = num => () => setCount(count + num)
return (
<div>
<p>You clicked {count} times</p>
<button onClick={plus(1)}>
Нажми на меня
</button>
</div>
);
}