Используя реагирующий хук, я хочу преобразовать все свои классы в функцию. предположим, что это мой возвращенный рендер:
{layerList.map(i => {
return (
<Button
className = "button-layer"
type = "primary"
onClick = {handleAa(i)}
> {aa}
</Button>
<Button
className = "button-layer"
type = "primary"
key = {some_values}
onClick = { handleChangeEvent(i) }
>
{i}
</Button>
)
} )}
Как передать i
функции handleChangeEvent?
что вы передадите по нажатию кнопки
Вам нужен функция, а не вызов функции в качестве значения реквизитов функции. Например.
onClick = {() => handleAa(i)}
а также
onClick = {() => handleChangeEvent(i)}
Если вы передаете вызов функции, как у вас есть, то он вызывается один раз, сразу же при рендеринге, а не при нажатии.
{
layerList.map(i => {
return (
<Button
className = "button-layer"
type = "primary"
onClick = {() => handleAa(i)}
> {aa}
</Button>
<Button
className = "button-layer"
type = "primary"
key = {some_values}
onClick = { () => handleChangeEvent(i) }
>
{i}
</Button>
)}
)
}
вам также может понадобиться определить функции
function handleAa(i){}
function handleChangeEvent(i){}
и вы должны использовать свойство
key
при рендеринге некоторых компонентов с помощьюmap()
или других циклов.