Итак, вы забыли о обязательном действии.
В JokeStat.js
действие связывания в
<JokesContext.Provider
value={{
joke: this.state.joke,
getJoke: this.getJoke.bind(this)
}}
>
{this.props.children}
</JokesContext.Provider>
Или изменить
async getJoke() {
console.log("get joked triggered");
const joke = await fetchJoke();
console.log(joke,'joke')
console.log("state", this.state);
this.setState({ joke });
}
до
getJoke = async() => {
console.log("get joked triggered");
const joke = await fetchJoke();
console.log(joke,'joke')
console.log("state", this.state);
this.setState({ joke });
}
или 3-й вариант
<JokesContext.Provider
value={{
joke: this.state.joke,
getJoke: ()=>this.getJoke()
}}
>
{this.props.children}
</JokesContext.Provider>