Есть компонент, в который входят 2 других компонента: кнопки и блок, кнопок несколько, и при нажатии на кнопку, блок должен принимать ее цвет. Не могу понять, как в функцию, которая меняет цвет блока, передать нужный цвет кнопки.
class App extends React.Component {
constructor(props) {
super(props)
this.state = {
color: 'green'
};
this.handleSetColor = this.handleSetColor.bind(this);
}
//как сюда передать props из кнопки?
handleSetColor() {
this.setState({
color: color
})
}
render() {
return(
<div>
<Button color={'green'} onClick = {this.handleSetColor}/>
<Button color={'red'} onClick = {this.handleSetColor}/>
<Button color={'yellow'} onClick = {this.handleSetColor}/>
<Button color={'blue'} onClick = {this.handleSetColor}/>
<ColorContainer color={this.state.color}/>
</div>
)
}
}
class Button extends React.Component {
constructor(props){
super(props)
}
render() {
return(
<button onClick={this.props.onClick}
style={{backgroundColor: this.props.color}}
{this.props.color}
</button>
)
}
}
class ColorContainer extends React.Component {
constructor(props){
super(props)
}
render() {
return(
<div className={'color-cont'} style={{backgroundColor: this.props.color}}>Color container</div>
)
}
}
ReactDOM.render(
<App/>,
document.getElementById('root')
);
Оберните хендлер в функцию и передайте в нее цвет, в качестве аргумента. Так же укажите параметр цвета в хендлер.
...
handleSetColor(color) {
this.setState({color: color})
}
...
const Button = props => {
const {color, onClick} = props;
return(
<button onClick={() => onClick(color)}
style={{backgroundColor: color}}>
{color}
</button>
)
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Пытаюсь обойти это баг уже более суток без снаПосле того как я отправляю внешний запрос то важная onInit перестает вызываться у компонентов...
Добрый день мне необходимо чтобы этот скрипт выполнялся при заходе с мобильного
Хочу сделать скрипт, чтобы сдвинув мышь на определенное количество пикселей вниз выполнялся внутренний скрипт
Кто-нибудь сталкивался или знает что-нибудь на тему жестов на веб сайте с тачпада или мобильных устройств? Возможно ли вообще реализовать...