React добавить дочерней компоненте onClick

87
16 апреля 2022, 14:50

У меня есть множество компоентов в dropdown списке. Надо чтобы при нажатии на любой из элементов списка, происходило конкретное действие.

Если я делаю так:

functiion filter() {
    return(
        <div className={`${styles.option_list} no_decorate`}>
            {Object.entries(selectedItem).map(region => {
                let test = 'test'
                return <Card key={uniqueKeyGenerator()} region={region[0]} selected={region[1]} onClick={(test) => console.log(test)} />
            }
            )}
        </div>
    )
}
function Card({ region, selected = false }) {
    return (
        <div className={`${styles.option} ${selected ? styles.selected : ''}`}>
            {region}
        </div>
    )
}

то в консоли не выводится ничего. Если же я делаю так:

functiion filter() {
    return(
        <div className={`${styles.option_list} no_decorate`}>
            {Object.entries(selectedItem).map(region => {
                let test = 'test'
                return <Card key={uniqueKeyGenerator()} region={region[0]} selected={region[1]} onClick={(test) => console.log(test)} />
            }
            )}
        </div>
    )
}
function Card({ region, selected = false, onClick }){
    return (
        <div onClick={onClick} className={`${styles.option} ${selected ? styles.selected : ''}`}>
            {region}
        </div>
    )
}

то в консоли выводится это:

Вопрос - как мне реализовать реакцию на событие onClick с передачей параметра.

Answer 1
export default function App() {
  const onClickHandler = (value) => {
    console.log(value);
  };
  return <Card onClickHandler={onClickHandler} />;
}

export default function Card({ onClickHandler }) {
  return <button onClick={() => onClickHandler("test")}>Click me</button>;
}

Пример

READ ALSO
JS Получение изображения из input

JS Получение изображения из input

Есть форма html для загрузки изображения:

94
Удалить массивы с определенным значением из массива

Удалить массивы с определенным значением из массива

У меня есть массив содержащий массивы с пустыми строкамимне нужно удалить все массивы с пустыми строками и оставить только те,которые содержат...

191
JS Выбор тега html

JS Выбор тега html

Есть переменная, в которой хранится html код: <p><img src="/"></p> Как из этого выбрать только <img> и записать в отдельную переменную?

91