Существует еще одно решение от этого
Вы можете оставить Hi () без этого:
{this.state.showSayHi ? Hi() : null}
Но, чтобы сохранить его таким, Вы должны вывести функцию Hi () из класса. Например:
const Hi = () => {
return <h1>Hi</h1>
}
class Button extends React.Component {
state = {
showSayHi: false
}
sayHi = () => {
this.setState({
showSayHi: true
}) ;
}
render() {
const { showSayHi } = this.state;
return (
<div>
{this.state.showSayHi ? Hi() : null}
<button type="submit" onClick={this.sayHi}>Press me</button>
</div>
)
}
Я не призываю вас сделать это (если вы не хотите использовать также функцию Hi () вне класса). Я просто хочу показать вам, что это решение также работает. Если вы сравните его с предыдущим решением , вы поймете, как слово this работает в классе.