Je suis nouveau dans js
et reactjs
. J'essaie de créer un ButtonGroup
avec peu Buttons
à l'intérieur, dans l'espoir que lorsque je clique sur un élément particulier Button
(en ButtonGroup
), seul ce bouton particulier sera mis en évidence (changement de couleur) et le reste sera de couleur normale. Ci-dessous, vous trouverez le code qui réalise le comportement ci-dessus mais en setColour
Je reçois une erreur _this.state.selected.props is undefined
. Quelqu'un pourrait-il m'indiquer où je me trompe ? De même, si quelqu'un peut me dire si c'est la bonne façon d'aborder ce problème.
import React from "react"
import {
ButtonGroup,
Button
} from "reactstrap"
class MainButtonsGroup extends React.Component {
constructor (props) {
super(props)
this.state = {
selected: null
}
}
handleSelection = (e) => {
this.setState({selected: e.target})
}
setColour = (key) => {
if (this.state.selected)
{
// ERROR : _this.state.selected.props is undefined
return (this.state.selected.props.key === key) ? 'primary' : 'secondary'
}
}
render() {
return (
<ButtonGroup>
<Button key={1} onClick={this.handleSelection} color={this.setColour(1)}>MainButtonA</Button>
<Button key={2} onClick={this.handleSelection} color={this.setColour(2)}>MainButtonB</Button>
<Button key={3} onClick={this.handleSelection} color={this.setColour(3)}>MainButtonC</Button>
</ButtonGroup>
)
}
}
export default MainButtonsGroup;