I am currently re-writing one of my Web applications (made using jQuery and JavaScript) to use React.js instead.
I am having a little trouble figuring out how to render classNames when working with a complex conditional statement.
I have two states called userChoseToMeetAlien and cupAndSaucerHaveArrived in my main component class called AppContainer.
The initial state of the userChoseToMeetAlien and cupAndSaucerHaveArrived booleans are set to false as follows.
constructor(props) {
super(props);
this.state = {
userChoseToMeetAlien: false,
cupAndSaucerHaveArrived: false
};
}
I have a stateless component called CupAndSaucer and these states (mentioned above) are passed in as properties.
I would like to add different classes to the HTML (rendered in CupAndSaucer) depending on the values of these properties.
Here is the pseudocode of how I would like things to work:
if(props.userChoseToMeetAlien is true AND props.cupAndSaucerHaveArrived is false) then
add the move_animation class
else if(props.userChoseToMeetAlien is false AND props.cupAndSaucerHaveArrived is true)
add the full_position class
else
//both properties are false
should have no classes
end
Here is my CupAndSaucer component where I have attempted to add the classes. As you can see it is not ideal as the full_position class is added when both props.userChoseToMeetAlien and props.cupAndSaucerHaveArrived are false.
const CupAndSaucer = function(props) {
return (<div id="cup_and_saucer_container"
className={((props.userChoseToMeetAlien === true && props.cupAndSaucerHaveArrived === false) ? 'move_animation' : 'full_position')}>
</div>
);
}
I'd appreciate any help. Thanks
Aucun commentaire:
Enregistrer un commentaire