問題タブ [redux-router]

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 投票する
1 に答える
60 参照

reactjs - エラーon reactredux ルーター

このコードを使用して、ルート redux ルーターを作成しています

このエラーが発生しています

「キャッチされていない TypeError: 未定義のプロパティ 'getState' を読み取ることができません」

app redux に router redux を実装しようとしています ありがとう

カルロス・ビエイラ

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

reactjs - componentWillReceiveProps がルーター パラメータの変更時に起動しない

私は と一緒に使用してreact-router-reduxおりredux、このレポではすべてがうまく機能しています:react-routerreact

https://github.com/justsayno/redux-react-introduction-code/tree/issue-branch

issue-branch(私の問題を再現するためにブランチを見てください)

react-routerを使用して状態を redux 状態に統合し、react-router-reduxmapStateToProps を正常に使用して、employeeId次のように小道具から必要なルーターパラメーターを取得できます。

(以下はこのファイルから)

私のレンダー関数ではconsole.log(、employeeId は ${this.props.employeeId})であり、そのコンポーネントにルーティングするとパラメーターが変更されます。

しかし、理由がわかりませんが、パラメータが変更されたときにこれが起動しません。

私が達成しようとしているのは、従業員のリストと単一の従業員の異なるモック API 呼び出しです。employeeId パラメータが変更された場合、または従業員の 1 つしか表示されない場合は、従業員を再取得する必要があります。私は自分の関数でこれを行うつもりでしcomponentWillReceivePropsた。employeeId の変更を確認し、次のようになっている場合はアクションを開始します。

私はこれに間違って近づいていますか?

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

reactjs - ReactJS+Redux: 別の props に依存する props を処理する方法

を作成してGraphReact.Componentます。の場合componentWillMount、このグラフは非同期アクションを使用して構成ファイルをロードします。構成ファイルには、取得する必要があるクエリ情報も含まれています。

今のところ、2 つの要求 (構成 + クエリ) を連鎖させ、その結果を現在の Redux 状態に保存しています。

Graphコンポーネントをconnected両方の変数にしたいと思います。ただし、構成がフェッチされる前のクエリ名はわかりません。

設計上の問題に直面するかもしれませんが、フィードバックをお寄せください。この状況にどのように対処しますか?

今のところ、コンポーネントの状態を作成しましたが、redux 状態と同期する必要があります。

環境

  • 反応 @ 15.3.1
  • redux@3.6.0
  • redux-thunk@2.1.0
0 投票する
1 に答える
1270 参照

reactjs - 反応ルーターの onEnter フック内に新しいエピックを遅延して追加するのは効率的な方法ですか?

redux-observable を react-router で使用する場合、ルート変更中に react-router の onEnter フック内のドキュメントの指示に従って、新しいエピックを非同期に追加することは理にかなっていますか?

./epics/index.js

...ルート/SomePath/index.js

Rxjs と redux-observable の非常に新しい。1. この場合、 /some-path に移動するたびに epic3 が rootEpic に再度追加されるのでしょうか? 2. rootEpic に追加されたエピックを console.log に記録したい場合、どうすればよいですか?


@JayPhelpsに応じて編集

いくつかの点について説明を求めてもよろしいですか?

  1. registerEpic fn はうまく機能します。私は .distinct() 演算子を使用して、重複した叙事詩の登録の問題に次のように対処していました。

    export const epic$ = new BehaviorSubject(combineEpics(epic1, epic2)).distinct()

これは、怠惰な叙事詩の登録を処理する同様に有効/適切な方法ですか?そうでない場合は、その理由を説明していただけますか?

  1. 私はrequire.ensureとES6インポートを備えたcreate-react-appを使用しています(これらはインポートの異なる方法ですよね?)、基本的に、コードを含むreact-routerのヒュージアプリの例require.ensureをコピーして貼り付けましたが、どこでもそれ以外の場合は、ファイルの先頭で import ステートメントを使用しています。

したがって、エピックと registerEpic fn を上部にインポートすると機能するように見えますが、require.ensure の最初の引数内にパスを配置することも機能するようです。require.ensure AND import ステートメントを使用すると、混乱しますか? ルートが必要とするすべてのものをロードするために require.ensure を使用する場合、そのルートのコンポーネントのネストされた (ルートのない) コンポーネント内のすべての import ステートメントを削除することを意味しますか?

  1. 非同期ロード用の 'getComponent' fn でのエピックの登録について - エピックが登録されるまでルートのコンポーネントがレンダリングされないように、ここで同期ロードを行うことが実際には望ましいと思いました。ユーザーがエピックの登録が必要な詳細情報の取得やフォームの送信など、エピックがまだ登録されていないルートで何かを行おうとするとどうなりますか?

  2. エピックを遅延登録するのに適切な、react-router module.export 宣言以外の場所はありますか? 私のプロジェクトの多くのルートはログインを必要としないため、ログインしても常にルートの変更がトリガーされるとは限りません。ただし、ユーザーがログインした後に登録する必要があるエピックがたくさんあります。現在、authReducer でトークン変数を設定することで、本当にばかげた、おそらく間違った方法でそれを行っていますが、関数を呼び出すだけです。新しい叙事詩を登録します。

    /li>

レデューサーではなく、loginEpic がエピックを登録するのに適した場所になると思います。(あなたのログイン例を github で見つけたので、見覚えがあるかもしれません)。それは正しいですか、それとも私は完全にベースから外れていますか? 私は .concat() が同期であることを知っており、redux が同期であることを知っています。それとも、問題にならないほど急速に物事が進んでいるということですか? それとも、インポートステートメントと、さらに調査する必要があるコード分割をwebpackがどのように処理するかについて、私が持っているいくつかの本質的な誤解のためにのみ機能しますか?

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

javascript - ログイン成功後の転送

正しくログインした後、ユーザーを転送したい。React-router を使用して Router パスを解決します。

うまくいかなかったさまざまなことを試しました(コメント行を参照)。

現在、私は使用しようとしていますhistory.push()が、コンパイラは言う

history.push は関数ではありません。

からの push メソッドが使用されていないことに気付きました"redux-router"..代わりに、おそらく存在しない小道具のメソッドを探します。

それ、どうやったら出来るの?

前もって感謝します。

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

reactjs - Redux Router Uncaught TypeError: createHistory は関数ではありません

Redux ルーター バージョン ^2.1.2

反応ルーターのバージョン: "react-router": "^3.0.0"、履歴のバージョン: "history": "^4.3.0"

再現する手順

エラーを返すindex.js:34416 Uncaught TypeError: createHistory is not a function(…)

解決策はありますか?


import { createHistory } from 'history';に変更後import createHistory from 'history/createBrowserHistory';

エラーはUncaught TypeError: history.getCurrentLocation is not a function

考え?