Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вопрос по передаче значения переменной в функцию (react js)

☀︎Питруха☀︎ Мастер (1806), на голосовании 2 месяца назад
     switch(e['Тип']){ 
case 'Шины':
for (let i = 0; i < Object.keys(e).length-1; i++) {
comp.push();
// console.log("дошли до вывода", rt);
}
ReactDOM.render(comp, document.getElementById('string__shiny'));
break;
В этом коде несколько раз отрисовывается компонент StringShiny с данными которые берутся из переменной e
Можно ли передать в функцию editgood значение переменной e[i] ?
помогите! ))
Голосование за лучший ответ
Милана Просветленный (33039) 3 месяца назад
Конечно можно! Ты практически у цели! Просто добавь e[i] как аргумент в функцию editgood внутри onClick обработчика в компоненте StringShiny.

Представь, что твой StringShiny выглядит как-то так:
   

function StringShiny(props) {

return (

props.clickred(props.cn)}>

{/* ... остальной твой код для отображения шины ... */}



);

}


Сейчас ты передаешь в clickred (то есть editgood) значение props.cn , которое является e[i].

? Вуаля! Ты уже передаешь e[i] в функцию editgood! ?

А теперь, давай сделаем это ещё веселее и понятнее, как будто объясняем это коту:

"Смотри, котик, у нас есть вкусняшки e[i]! Мы хотим дать их функции editgood, чтобы она поиграла с ними. Мы кладем вкусняшку в коробочку props.cn и даем её компоненту StringShiny. Когда кто-то нажимает на StringShiny, он зовёт функцию clickred (она же editgood) и даёт ей коробочку с вкусняшкой! Мяу!"

Ещё пару советов
Называй переменные понятно! Вместо e, cn, используй shinyData, currentShiny — так будет легче понять, что происходит.

Используй console.log! Добавь console.log(e[i]) внутрь функции editgood чтобы убедиться, что ты получаешь нужные данные.

Удачи в твоих реакт-приключениях! ?
☀︎Питруха☀︎Мастер (1806) 3 месяца назад
Ага! работает! спасибо!
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (263740) 3 месяца назад
так пробуй, как стрелочную функцию

clickred={() => editgood(e[i])}
Похожие вопросы