# GJSコンポーネントがモーダルサービス経由で表示されると「undefined helper」エラーが発生する (Discourse 3.5.0)

**URL:** <https://meta.discourse.org/t/gjs-component-fails-with-undefined-helper-error-when-shown-via-modal-service-discourse-3-5-0/362272>\
**Category:** Development\
**Created:** [2025 年 4 月 17 日午前 7:04 UTC](https://meta.discourse.org/t/gjs-component-fails-with-undefined-helper-error-when-shown-via-modal-service-discourse-3-5-0/362272 "2025-04-17T07:04:42Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![SubStrider](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/substrider/32/512604_2.png) [@SubStrider](https://meta.discourse.org/u/SubStrider)\
**Post date:** [2025 年 4 月 18 日午前 2:59 UTC](https://meta.discourse.org/t/gjs-component-fails-with-undefined-helper-error-when-shown-via-modal-service-discourse-3-5-0/362272/4 "2025-04-18T02:59:28Z")

</div>

> [@Arkshine](#):
>
> GitHubにこのエラーをトリガーする簡単なTCを作成してもらえますか？

こんにちは。

この問題について、ご提案いただいた通り `minimal-modal-test` プラグインを作成しました。

- **成功:** テストプラグインのモーダルコンポーネント（`minimal-modal.gjs`）に基本的な要素（`<p>`、`<textarea>`、コアの `<DModal>`、`<DButton>`、条件付きブロックに使用される `#if` のような組み込みヘルパー、送信ボタンのアイコンに使用される `if` など）のみが含まれていた場合、`post-menu-buttons` 値トランスフォーマー経由で追加されたボタンコンポーネントからトリガーされる `modal.show()` によって開かれたときに、 **エラーなく正しくレンダリングされました** 。これは、私の環境（Discourse v3.5.0.beta3-dev）で、基本的なモーダルサービス、コンポーネントレンダリング、値トランスフォーマー、および組み込みヘルパーが単独で機能していることを確認するものです。

- **失敗:** モーダルのテンプレート（`minimal-modal.gjs` または `feedback-form-modal.gjs`）に子コンポーネント `<StarRatingInput>` を再度追加した瞬間に、エラー（`TypeError: userProvidedCallback is undefined` / 以前は `Attempted to use a value as a helper... undefined`）が **一貫して再発します** 。

`StarRatingInput` コンポーネント自体には、以前特定された回避策（`dIcon` ヘルパーの代わりにインライン SVG、`this` コンテキストを修正するための `starClass` のようなメソッドのアロー関数、`range` ヘルパーの代わりに標準の JavaScript `Array.from`）を使用していることを確認しました。`StarRatingInput` の内部コードは、現在正しいように見えます。

これは、この特定のレンダリングコンテキスト内で、親モーダルコンポーネント内にネストされた `<StarRatingInput>` コンポーネント（`#each` ループ、動的なクラスバインディング、イベントハンドラーが含まれています）を **レンダリングすることによって** エラーがトリガーされていることを示唆しています。

> **[GitHub - rahul-rakesh/discourse-modal-render-test](https://github.com/rahul-rakesh/discourse-modal-render-test)**
>
> Contribute to rahul-rakesh/discourse-modal-render-test development by creating an account on GitHub.

## 再現手順

1. 最新の Discourse 開発環境バージョンを実行している。

2. 任意のユーザーとしてログインする。

3. 任意のトピックに移動し、 **最初の投稿** を表示する。

4. 投稿メニューに追加された **「Test Failing Modal」** ボタンをクリックする。

5. ブラウザの開発者コンソールを開く。

## 期待される結果

シンプルなモーダルダイアログに、スターレーティング入力が表示される。

## 実際の結果

モーダルが完全にレンダリングされず失敗する。ブラウザコンソールにエラーが表示される。

---

_[View the full topic](https://meta.discourse.org/t/gjs-component-fails-with-undefined-helper-error-when-shown-via-modal-service-discourse-3-5-0/362272)._
