По задумке - пользователь выбирает цвет в select.Этот цвет должен в конце концов попасть в компонент floor и с помощью styled components изменить цвет.Но почему то, при выборе цвет выпадает ошибка onChangeColor is not a function.Если смотреть через console log, то вообще undefined..
Тут выбирается цвет:
<select name="choice" onChange={colorChange}>
<option value="red">red</option>
<option value="yellow">yellow</option>
<option value="green">green</option>
</select>
Вот сам colorChange:
const colorChange = (event) => {
onChangeColor(event.target.value)
}
Потом экспорт функции:
export const HouseOptions = ({title, onChange, onChangeColor}) => {
Потом вывожу onChangeColor через child (handleNameChange это еще одна функция)
return <HouseOptions title={house.title} onChange={e => { handleNameChange(e); onChangeColor(e) }}/>
Потом в компоненте родителе делаю состояние:
const [color, setColor] = useState()
const onChangeColor = (color) => {
setColor(color)
}
Потом добавляю во floor цвет:
for (let i = 1; i < numOfFloors; i++) {
floors.push(<Floor key={house.id} color={color}/>);
}
return (
<House key={house.id}>
{floors}
</House>
);
Во floor вывожу цвет в styled components:
const FloorColor = styled.div`
background-color: ${(color) => color === 'red' ? 'red' : color === 'yellow' ? 'yellow' : 'purple'};
`
return (
<FloorColor className={styles.main} color={color}>
Как то так, надеюсь понятно обьяснил..