아래에 해당하는 부분, 함수로 래핑해서 해결했습니다. 일렉트론과 리액트 본격적으로 통신 가능함.
정확히는 일렉트론의 통신 함수를 오버라이딩하고 일렉트론을 window 전역 객체에 주입해서 이를 리액트에서도 받아쓸 수 있도록 구현한거임.
다만 무턱대고 쓸 수 있는건 아니고 함수로 래핑해야함. 훅으로 래핑해서는 안되는 듯.
일렉트론 기능을 웹에서도 쓸 수 있다는건 아니니까 오해는 없었으면 함.
아무튼 해결했음.
{ typeof electron !== "undefined" && … }
그냥 뭐 무적의 코드임.
글쎄, 좀 크리티컬한 이슈라고 생각합니다.
통상적으로 일렉트론에서 데이터를 교환하는 방법은 ipc 프로토콜을 사용합니다.
로직단(일렉트론에서는 메인 프로세스라고 함)에서는 ipcMain, 뷰단(일렉트론에서는 렌더러 프로세스라고 함)에서는 ipcRenderer 라고하는 함수를 사용하는데 뭐 기능은 fetch와 크게 다르지 않습니다. 기능도 딱 req, res와 같이 send, on만 있는 수준임.
다만 리액트 컴포넌트는 ipcRenderer의 기능 중 send만 사용이 가능합니다. on을 사용할 수가 없어서 리액트에서 일렉트론 로직단으로 데이터를 보내는건 되는데 수신받는건 안됌.
조금 길게 설명하자면,