Tell us what’s happening:
So I tried this on my own at first and I thought I had the answer, but it wasn’t passing. Then I watched a video and took a look at the solutions. My answer wasn’t far off, but I’m having trouble understanding this part:
toggleVisibility () {
this.setState(state => {
if (state.visibility == true) {
return {visibility: false}
} else {
return {visibility: true}
}
} )
}
how do the return values know that visibility is referring to this.state in the constructor?
Your code so far
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
visibility: false
};
// Change code below this line
this.toggleVisibility = this.toggleVisibility.bind(this);
// Change code above this line
}
// Change code below this line
toggleVisibility () {
this.setState(state => {
if (state.visibility == true) {
return {visibility: false}
} else {
return {visibility: true}
}
} )
}
// Change code above this line
render() {
if (this.state.visibility) {
return (
<div>
<button onClick={this.toggleVisibility}>Click Me</button>
<h1>Now you see me!</h1>
</div>
);
} else {
return (
<div>
<button onClick={this.toggleVisibility}>Click Me</button>
</div>
);
}
}
}
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36.
Challenge: Use State to Toggle an Element
Link to the challenge: