A Parent (Board) packs her Child (Note) a bag (props) and puts a mobile phone (onChange) and says: if you want to tell me something just text me the message. Then after some time the Child thinks "let's text my parent" so the Child takes the phone out of his properties and texts the Parent: this.props.onChange("Thank you for sandwiches"). The Parent, then receives the message and saves it into her notebook (state): this.setState({notes})

When the above finds its way to the render() method of the Board component (via {this.state.notes.map(this.eachNote)}, it's like Board saying,

"Hey let's render the Note component and lets give it some properties (props)".

"Let's name one of this props onChange and when it is invoked by the Note later, let's execute my own method called update"

"Instaed of calling this prop onChange we could call it whatever we want, for example <Note ... fromParentWithLove={this.update}> ... </Note>, but let's call it onChange so that it is easier to follow our intentions."

Then, we can move to the child component - Note. Note is saying to itself: