問題タブ [redux-saga]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
355 参照

redux - redux-sagaでpubnubを使用するベストプラクティスは何ですか?

redux-saga でジェネレーターを使用して pubnub を使用するためのベスト プラクティスは何ですか。接続時、切断時、イベント時にアクションをディスパッチして、履歴メッセージなどを取得するには?

問題は、PubNub が promise の代わりにコールバック API を提供していることと、一部の関数が接続、切断などの複数のコールバックを持っていることです。

パブリッシュの場合、次の機能があります。

サブスクライブするには、次のものが必要です。

0 投票する
6 に答える
14674 参照

javascript - React/redux アプリが Safari で空白の画面をレンダリングする

私が試したすべてのブラウザーで動作する React/redux でアプリを作成しましたが、MacOS の Safari と iPhone の任意のブラウザーで動作します。エラーもコンソールメッセージも表示されず、何のアイデアも得られません。Safariでのみタグをレンダリングし、画面は空白です。

http://podcast.exploration.io

この問題をどのように追跡できますか?

ありがとう

0 投票する
2 に答える
7163 参照

webpack - Redux Saga ホットリロード

私は React & Redux プロジェクトに取り組んでいました。このプロジェクトでは、webpack-dev-middleware とホット ミドルウェアを使用してホット リロードしていました。

Redux Saga をプロジェクトに追加し、saga ミドルウェアを redux ストアに追加した後。サガ コードを変更するたびに、ホット リロードが壊れてエラー メッセージが表示されるようです。

Provider> は、その場での変更をサポートしていませんstore。Redux 2.x および React Redux 2.x に更新したため、このエラーが表示される可能性が最も高くなります。移行手順については、https://github.com/reactjs/react-redux/releases/tag/v2.0.0を参照してください。

Saga はジェネレーターを使用しており、時間に依存していることを理解しています。Sagas でページをホットリロードできますか? ホットリロード中にReduxレデューサーが自分自身を置き換える方法と同じです。

ありがとう!

0 投票する
6 に答える
13799 参照

javascript - 遅延/キャンセルだけでなく、Redux saga debounce

Redux-Saga でデバウンスする方法はありますか?後続の呼び出しが同じ遅延の後ろにキューに入れられ、キューに追加された新しいタスクごとにぶつかり続けます。lodash の debounce https://lodash.com/docs#debounceに似ています。

私は現在、redux-saga のデバウンスに似たものを持っていますが、各タスクを実行したいのでキャンセル部分を削除しました。後で単一のスレッドで発生するすべてのイベントをまとめたいだけです。

私が現在持っているもの:

フォークを変数に割り当ててから、それが実行されているかどうかを確認しようとしました (.isRunning()) が、そのフォークを別の遅延で延期する方法がわかりませんでした。

0 投票する
2 に答える
907 参照

javascript - redux-thunk ボイラープレートの削減

サンクredux-thunkとして知られる関数を記述する場合、簡単に抽象化できるボイラープレートがたくさんあります。たとえば、ほとんどの非同期 API 呼び出しでは、副作用なしで次のことを行っています。

簡単!これはリクエストの少なくとも 70% をカバーしているため、上記のコードの割り当てを次のようなもの (疑似コード) に抽象化するエレガントな方法があると確信しています。

状態やその他の副作用を確認する必要がある場合は、適切なサンクに戻ることができます。ほとんどの場合...これを削減できますか?

エレガントなアイデアはありますか?

0 投票する
1 に答える
1677 参照

reactjs - Redux Saga が LOCATION_CHANGE に立ち寄るのが早すぎた

そのため、ルートのロード時に Sagas を動的に注入しています

injectAsyncSagas次のようになります。

は、ストアの作成時に作成されますstore.runSagasagaMiddleware.run

ルートが読み込まれると、サガが正常に開始されます。アクションをリッスンしています。

ルートをロードすると、「Start mySagaFunction」がコンソールされます。SOME_HOME_PAGE_ACTION をディスパッチすると、必要なことはすべて正常に実行されます。ページを離れると、ルーターが LOCATION_CHANGE を呼び出し、Saga コンソールが「mySagaFunction を停止」して、while ループを正常に終了したことを意味します。

それから別のルートに行き、このルートに戻ってきます。今回は、予想どおり、LOCATION_CHANGE がルーターによってディスパッチされました。しかし佐賀は始まってすぐに止まる。私のコンソールは次のようになります:

Redux 開発ツールでは、LOCATION_CHANGE が 1 つしか表示されません。Saga が開始され、すぐに停止する理由を特定するにはどうすればよいですか? ルートに戻った場合にのみ発生します。

LOCATION_CHANGEの発送が遅れているのではないかと思いました。しかし、いいえ。私のレデューサーでは、アクションタイプを慰めました。最初に LOCATION_CHANGE で Reducer が呼び出され、saga が開始され、次に saga が停止します。

ページ間を移動するために使用Linkしています。私も試しbrowserHistory.push(url)てみdispatch(push(url))ました。同じ結果です。

注: react-boilerplateからサガを挿入するためのコードを取得しました。私はこのコードのみを使用しており、ボイラープレート自体は使用していません。定型文を実行しましたが、このバグは発生していません。違いは次のとおりです。

  • selectLocationStatesyncHistoryWithStore で使用しています。私の店全体は不変ではないので、それは必要ありません。
  • fromのrouteReducer代わりに独自のものを使用しています。理由はわかりません。完全に不変のストアが原因かもしれません。routerReducerreact-router-redux

とにかく、定型コードで上記の2つのポイントを削除しましたが、まだシナリオは発生していません。

0 投票する
3 に答える
24998 参照

javascript - アクションが redux-saga でディスパッチされたときにサガをキャンセルする

START アクションがディスパッチされると、ストップウォッチ React コンポーネントのタイマーを開始します。

STOPコンポーネントからアクションがディスパッチされたときに、サガを停止するのに問題があります。私は自分のワーカーサガ内からエフェクトを使用してみcancelました:cancelled

また、監視サービスからサガを停止しようとする最初のコード ブロックのアプローチと同様です。

0 投票する
1 に答える
2614 参照

javascript - 匿名関数コールバック内で put を使用する

React+Redux Saga アプリケーションにPusherを実装していますが、いくつかのコールバックでメソッドをヒットできないという問題がいくつかありますput(...)。メソッドで etc. を使用すると表示されますが、アプリケーションの状態を確認console.log(...)できません。put

非同期/ジェネレーター関数の実装の一部で間違っている可能性がありますが、今はほとんど行き詰まっています。

何が起動しないかを示す私のコード:

@Sebastienに基づくソリューション