Не могу передать значение из дочернего компонента в родительский
Сейчас я пытаюсь добиться следующего поведения: при выборе определенного человека, что бы он добавлялся в состояние selectedMentor
. Сейчас selectedMentor
хранит null
.
Часть кода родительского компонента HourlyRates
:
const HourlyRates = () => {
const [workers,setworkers] = useState(null)
const [mentorsFromMoodle, setMentorsFromMoodle] = useState(null)
const [modalActive,setModalActive] = useState(false)
const [selectedMentor, setSelectedMentor] = useState(null)
useEffect(()=>{
const handleSelectedMentor = (mentor) => {
console.log(mentor)
setSelectedMentor(mentor);
console.log("родитель")
console.log(selectedMentor)
};
return (
<>
<Modal active={modalActive} setModalActive={setModalActive}>
<div onClick={e=> e.stopPropagation()}>
<label for="cars">Choose a mentor:</label>
<select onChange={handleSelectedMentor} name="mentors" id="mentors-select">
{mentorsFromMoodle?.map((item,index) =>(
<ModalRow
key = {index}
index = {index}
item = {item}
onSelect = {handleSelectedMentor}
/>
) )
}
</select>
<button >add</button>
</div>
</Modal>
</>
)
}
export default HourlyRates;
Дочерний элемент ModalRow
:
import React from 'react'
import axios from "axios";
import { useState,useEffect} from 'react'
const ModalRow = (props) => {
const handleMentorClick = () => {
console.log("работает")
const mentorName = props.item.firstname;
const mentorLastname = props.item.lastname;
const mentorEmail = props.item.email;
const mentor = {fname: mentorName, lname: mentorLastname, mentorEmail: mentorEmail };
props.onSelect(mentor)
};
return (
<option onChange={() => handleMentorClick()} className={"modalRowId-" + props.index} value={props.item.email}>{props.item.firstname} {props.item.lastname}</option>
)
}
export default ModalRow
Источник: Stack Overflow на русском