React In Blazor - DidUpdate

引言

Blazor 與 React 本身不互支援,尚無法直接通訊。故導入 Mediator patternarrow-up-right 找到了JavScript 版本的 mediator-jsarrow-up-right 為通訊中心。(註:之後找到一套 Event Bus: js-event-busarrow-up-right 用較新的觀念重構 Mediator。)

相關文章

React In Blazor

React + r2wc in Blazor

源碼紀錄

導入 mediator-js 模組

導入 mediator-js 模組,版號為 mediator-js@0.11.0。以 Browser global 模式使用。

其溝通的通道名為『channel』格式為 string。

index.html
<script src="/js/Mediator.min.js"></script>
<script>
  //※ 導入 mediator 以實現 Blazor 與 React 進階通訊。
  window.__mediator = window.Mediator();
</script>

※ 補充 on 2023-10-04

circle-check

應用:包裝 react-select 成 Blazor 元件使用

包裝後名稱為 MySelect2,包裝後應用的碼大概如下:

Blazor 元件引入 react 元件

其中讓 elementId 就是 channel-id 剛好可以省下一些碼。

類註冊 renderMySelect2

以 mediator 間接通訊,所以少不了再包裝一層

因為不能直接 DidUpdate ,再包一層用 useState 緩存元件 props 再喂入目標元件。

把目標元件 react-select 包裝以間接用 mediator 實現 DidUpdate 通訊。

參考

(EOF)

Last updated