Skip to content

Commit 230acba

Browse files
committed
Chage how value is set on Provider because it is better on performance
1 parent 89707e6 commit 230acba

File tree

1 file changed

+11
-23
lines changed

1 file changed

+11
-23
lines changed

src/__tests__/react-context.js

+11-23
Original file line numberDiff line numberDiff line change
@@ -5,44 +5,32 @@ const StateContext = React.createContext()
55

66
const MyButton = () => (
77
<StateContext.Consumer>
8-
{({handleToggle}) => (
9-
<button onClick={handleToggle}>
10-
Push Me
11-
</button>
12-
)}
8+
{({handleToggle}) => <button onClick={handleToggle}>Push Me</button>}
139
</StateContext.Consumer>
1410
)
1511

1612
const SecretMessage = () => (
1713
<StateContext.Consumer>
18-
{({toggleStatus}) => (
19-
<h1>
20-
{toggleStatus ? 'Secret Message' : 'Hidden'}
21-
</h1>
22-
)}
14+
{({toggleStatus}) => <h1>{toggleStatus ? 'Secret Message' : 'Hidden'}</h1>}
2315
</StateContext.Consumer>
2416
)
2517

2618
class Container extends React.Component {
27-
state = {
28-
toggleStatus: false,
29-
}
30-
3119
handleToggle = () => {
3220
this.setState(prevState => ({
3321
toggleStatus: !prevState.toggleStatus,
3422
}))
3523
}
3624

25+
state = {
26+
toggleStatus: false,
27+
handleToggle: this.handleToggle,
28+
}
29+
3730
render() {
3831
return (
3932
<div>
40-
<StateContext.Provider
41-
value={{
42-
toggleStatus: this.state.toggleStatus,
43-
handleToggle: this.handleToggle,
44-
}}
45-
>
33+
<StateContext.Provider value={this.state}>
4634
<MyButton />
4735
<SecretMessage />
4836
</StateContext.Provider>
@@ -51,9 +39,9 @@ class Container extends React.Component {
5139
}
5240
}
5341

54-
test('Component renders with the correct message, correctly changes message after clicking butotn', () => {
42+
test('Component renders with the correct message then correctly changes message after clicking button', () => {
5543
const {getByText} = render(<Container />)
56-
expect(getByText('Hidden').textContent).toBe('Hidden');
44+
expect(getByText('Hidden').textContent).toBe('Hidden')
5745
Simulate.click(getByText('Push Me'))
58-
expect(getByText('Secret Message').textContent).toBe('Secret Message');
46+
expect(getByText('Secret Message').textContent).toBe('Secret Message')
5947
})

0 commit comments

Comments
 (0)