Render a component within a Widget. (Using select-kit components within plugin code)

はい、それらは定義されています。整理してリポジトリにプッシュします。

埋め込みコンポーネントを使用した双方向バインディングの一例を示すテストがあれば、非常に役立ちます!:pray:

「いいね!」 1

それにアクセスでき、scheduleRerender() 関数にもアクセスできました。テストとドキュメントを更新しました。

確認ですが、@binddiscourse-common/utils/decorators からインポートされていますか?

「いいね!」 1

確認しました

リポジトリはこちらです:GitHub - merefield/discourse-tc-bars-tag-intersection-chooser: A small widget to allow you to navigate to a topic list based on a combinations of tags

特にウィジェットファイルはこちらです: layouts-tag-intersection-widget/layouts-tag-combo.js.es6 at master · paviliondev/layouts-tag-intersection-widget (github.com)

非常に WIP で、述べたように動作しません。

(現状でテストするには Layouts プラグインのインストールと設定が必要ですが、ウィジェットコードを抽出するのは簡単です)

これは役立つかもしれません。

- @onChange={{action @data.onChangeUpdateTagSet}}/\u003e
+ @onChange=@data.onChangeUpdateTagSet/\u003e

「クロージャアクション」を渡す場合、(action ヘルパーは必要ありません(この場合、実際には問題を発生させているようです)。

「いいね!」 2

TypeError: this.attrs.onChange is not a function のような結果になるようですが、そのヘルパーが利用可能な属性を隠している可能性はありますか?

すみません、そこには波括弧が必要です。そうしないと、文字列属性として解析されてしまいます。

- @onChange={{action @data.onChangeUpdateTagSet}}/\u003e
+ @onChange={{@data.onChangeUpdateTagSet}} /\u003e
「いいね!」 1

残念ながら、同じエラーが発生します。

「いいね!」 1

ブレークポイントを追加して、this.attrs.onChange の値を確認してください。(開発者ツールの「例外発生時に一時停止」機能が役立つかもしれません)

「いいね!」 1

@Davidさんと私はプライベートメッセージでこれを解決しました

お時間をいただきありがとうございました、@Davidさん

完了したらTCを公開します。

「いいね!」 3

これは今や実現しましたが、現時点では少し粗削りです。

Layouts Pluginが必要です。

テーマコンポーネントのリポジトリはこちら: GitHub - merefield/discourse-tc-bars-tag-intersection-chooser: A small widget to allow you to navigate to a topic list based on a combinations of tags

「いいね!」 6

FYI、このコンポーネントは右サイドバーブロックもサポートするようになりました!

「いいね!」 1

FYI このコンポーネントは Discourse Bars 🍻 🍸 (a sidebar framework) をサポートしています

「いいね!」 2