Hello Context, a simple context api example
message
and a function ‘toggleMessage’.// An object called messages
export const messages = {
message1: {
firstWord: ‘hello’,
secondWord: ‘world’
},
message2: {
firstWord: ‘hi’,
secondWord: ‘everyone’
}
}
// The HelloContext itself
// - this needs to match the Consumer props
export const HelloContext = React.createContext({
message: messages.message1, // Message Object
toggleMessage: () => {}, // Empty Function
})
## The Consumer
- The consumer will be my Message component.
- The Message component will display a message and a button which changes the message.
```javascript
import React from 'react'
import { HelloContext } from '../contexts/hello-context';
const Message = () => {
return (
<HelloContext.Consumer>
{
({message, toggleMessage}) => (
<header className="App-header">
<h1 className="App-title">{ message.firstWord + ' ' + message.secondWord }</h1>
<button onClick={ toggleMessage }>Change Message</button>
</header>
)
}
</HelloContext.Consumer>
)
}
export default Message
state
.import { HelloContext, messages } from ‘../contexts/hello-context’
import Message from ‘./Message’
class App extends Component {
// This function strictly needs to be declared before initialising the state
_toggleMessage = () => {
console.log(‘Test’)
this.setState(prevState => ({
message:
prevState.message === messages.message1
? messages.message2
: messages.message1
}))
}
state = {
message: messages.message1,
toggleMessage: this._toggleMessage,
}
render() {
return (
export default App
```
This project was bootstrapped with Create React App.