質問: () => { 配列をconcatしてstateに保持する処理 }); } // property initializerを呼び出す該当箇所の4つのonClick={} // 以下はreturn内にあるコード this.confirmTodo()} // work onClick={this.confirmTodo} // work onClick={() => this.confirmTodo} // No respond onClick={this.confirmTodo()} // Error Maximum update depth exceeded. > 追加 ```
回答: onClickがどうというよりも関数オブジェクトと関数呼び出しの表記の部分で認識違いが起きている気がします。 onClickで指定するのは関数オブジェクトです。 定義時に`comfirmTodo = () => {内部処理}`と記載しているように、()を付けずに`comfirmTodo`と書くと関数オブジェクトを表ます。 また、()を付けた場合は関数の呼び出しを意味します。 したがって、`() => comfirmTodo()`と呼び出し結果をアロー関数化することで、また関数オブジェクトになるため、この表記も問題ありません。 しかし、それ以外の表記は関数オブジェクトをアロー関数化していたり、onClickで呼び出しそのものを対応させてしまっているので、エラーが起きたり、動かなかったりしているのかと思います。