アプリケーションで特定の時刻にローカルデータベースファイルからデータをロード/更新しようとしています。このファイルはメインプロセスからアクセスする必要がありますので、レンダラーからメインプロセスに送信し、必要なデータがメインプロセスから返されたらReduxのディスパッチを実行して状態を更新する必要があります。問題は、私のipcRenderer.on()リスナーがディスパッチを適切に呼び出すためのコンテキストを持っていないことです。関数をメインプロセスに渡してレンダラに戻そうとしましたが、関数はipcRenderer.sendから取り除かれました。関数をipcMainに渡してReact、Redux、Electronを使用して回避する方法
メインプロセスからデータを受け取った後、自分の状態を正しく更新するにはどうすればよいですか?私のコードの孤立した塊の下に。
メインプロセス:
ipcMain.on('getSites', (event, args) => {
db.sites.find({}, (err, docs) => {
event.sender.send('getSitesSuccess', { data: docs, dispatch: args.dispatch });
});
});
レンダラプロセス:
ipcRenderer.on('getSitesSuccess', (event, args) => {
args.dispatch(args.data);
});
class SiteList extends Component {
componentWillMount() {
ipcRenderer.send('getSites', {
test: 'test',
dispatch: (data) => { this.props.dispatch(actions.change('sites', data)); }
});
}
}
ありがとうMario。間違いなくあなたの答えを実装します。このバグを見つけようとしている間にあなたのプラグインを見つけ、それをタブで開いたままにしました。もう間もなくもう一度見ていきます。 – yourfavorite