Zendeskプラグインの「Zendeskで表示」ボタンの動作に問題が発生しています。チケットがZendeskに既に存在する場合、ボタンは正しく「Zendeskで表示」と表示されます。しかし、対応するZendeskチケットがない別のトピックに移動した場合でも、ボタンは最初に「Zendeskで表示」と表示され、「Zendeskチケットを作成」と表示されるべきところが更新されません。ページをリフレッシュすると、ボタンは正しく「Zendeskチケットを作成」オプションを表示するように更新されます。
ボタンコンポーネントが新しいトピックへのナビゲーション時に再レンダリングされていないようです。解決策としては、ページが変更されるたびにこのコンポーネントの再レンダリングをトリガーすることが考えられます。
この問題への最善のアプローチ、またはナビゲーション時にコンポーネントを正しく更新するように強制する方法について、どなたかアドバイスをいただけますでしょうか?ご意見やご提案をいただけると幸いです。
こんにちは。
お元気でお過ごしのことと思います。この件に関して、何かアップデートがあったか確認したく、ご連絡いたしました。ご意見やご指導をいただけると大変助かります。
よろしくお願いいたします。
MihirR
(Mihir)
3
ページ変更を検出していない可能性があります。これは、フロントエンドフレームワーク(おそらくEmber.js、Discourseが使用しているため)がナビゲーション中にコンポーネントレンダリングを処理する方法によるものと思われます。
次のようなルート変更リスナーを追加できます。
export default Component.extend({
router: service(),
didInsertElement() {
this._super(...arguments);
this.router.on('routeDidChange', () => {
this.refreshZendeskButton();
});
},
willDestroyElement() {
this._super(...arguments);
this.router.off('routeDidChange', this.refreshZendeskButton);
},
});
setupComponent() を使用しているため、修正が必要になる場合があります。
有効な Zendesk チケットがあるかどうかのチェックには zendesk_id が使用されています。api.onPageChange() が必要になるのではないでしょうか?