問題タブ [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.
reactjs - エラーon reactredux ルーター
このコードを使用して、ルート redux ルーターを作成しています
このエラーが発生しています
「キャッチされていない TypeError: 未定義のプロパティ 'getState' を読み取ることができません」
app redux に router redux を実装しようとしています ありがとう
カルロス・ビエイラ
reactjs - componentWillReceiveProps がルーター パラメータの変更時に起動しない
私は と一緒に使用してreact-router-redux
おりredux
、このレポではすべてがうまく機能しています:react-router
react
https://github.com/justsayno/redux-react-introduction-code/tree/issue-branch
issue-branch
(私の問題を再現するためにブランチを見てください)
react-router
を使用して状態を redux 状態に統合し、react-router-redux
mapStateToProps を正常に使用して、employeeId
次のように小道具から必要なルーターパラメーターを取得できます。
(以下はこのファイルから)
私のレンダー関数ではconsole.log(
、employeeId は ${this.props.employeeId})
であり、そのコンポーネントにルーティングするとパラメーターが変更されます。
しかし、理由がわかりませんが、パラメータが変更されたときにこれが起動しません。
私が達成しようとしているのは、従業員のリストと単一の従業員の異なるモック API 呼び出しです。employeeId パラメータが変更された場合、または従業員の 1 つしか表示されない場合は、従業員を再取得する必要があります。私は自分の関数でこれを行うつもりでしcomponentWillReceiveProps
た。employeeId の変更を確認し、次のようになっている場合はアクションを開始します。
私はこれに間違って近づいていますか?
reactjs - ReactJS+Redux: 別の props に依存する props を処理する方法
を作成してGraph
いReact.Component
ます。の場合componentWillMount
、このグラフは非同期アクションを使用して構成ファイルをロードします。構成ファイルには、取得する必要があるクエリ情報も含まれています。
今のところ、2 つの要求 (構成 + クエリ) を連鎖させ、その結果を現在の Redux 状態に保存しています。
Graph
コンポーネントをconnected
両方の変数にしたいと思います。ただし、構成がフェッチされる前のクエリ名はわかりません。
設計上の問題に直面するかもしれませんが、フィードバックをお寄せください。この状況にどのように対処しますか?
今のところ、コンポーネントの状態を作成しましたが、redux 状態と同期する必要があります。
環境
- 反応 @ 15.3.1
- redux@3.6.0
- redux-thunk@2.1.0
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に応じて編集
いくつかの点について説明を求めてもよろしいですか?
registerEpic fn はうまく機能します。私は .distinct() 演算子を使用して、重複した叙事詩の登録の問題に次のように対処していました。
export const epic$ = new BehaviorSubject(combineEpics(epic1, epic2)).distinct()
これは、怠惰な叙事詩の登録を処理する同様に有効/適切な方法ですか?そうでない場合は、その理由を説明していただけますか?
- 私はrequire.ensureとES6インポートを備えたcreate-react-appを使用しています(これらはインポートの異なる方法ですよね?)、基本的に、コードを含むreact-routerのヒュージアプリの例
require.ensure
をコピーして貼り付けましたが、どこでもそれ以外の場合は、ファイルの先頭で import ステートメントを使用しています。
したがって、エピックと registerEpic fn を上部にインポートすると機能するように見えますが、require.ensure の最初の引数内にパスを配置することも機能するようです。require.ensure AND import ステートメントを使用すると、混乱しますか? ルートが必要とするすべてのものをロードするために require.ensure を使用する場合、そのルートのコンポーネントのネストされた (ルートのない) コンポーネント内のすべての import ステートメントを削除することを意味しますか?
非同期ロード用の 'getComponent' fn でのエピックの登録について - エピックが登録されるまでルートのコンポーネントがレンダリングされないように、ここで同期ロードを行うことが実際には望ましいと思いました。ユーザーがエピックの登録が必要な詳細情報の取得やフォームの送信など、エピックがまだ登録されていないルートで何かを行おうとするとどうなりますか?
エピックを遅延登録するのに適切な、react-router module.export 宣言以外の場所はありますか? 私のプロジェクトの多くのルートはログインを必要としないため、ログインしても常にルートの変更がトリガーされるとは限りません。ただし、ユーザーがログインした後に登録する必要があるエピックがたくさんあります。現在、authReducer でトークン変数を設定することで、本当にばかげた、おそらく間違った方法でそれを行っていますが、関数を呼び出すだけです。新しい叙事詩を登録します。
/li>
レデューサーではなく、loginEpic がエピックを登録するのに適した場所になると思います。(あなたのログイン例を github で見つけたので、見覚えがあるかもしれません)。それは正しいですか、それとも私は完全にベースから外れていますか? 私は .concat() が同期であることを知っており、redux が同期であることを知っています。それとも、問題にならないほど急速に物事が進んでいるということですか? それとも、インポートステートメントと、さらに調査する必要があるコード分割をwebpackがどのように処理するかについて、私が持っているいくつかの本質的な誤解のためにのみ機能しますか?
javascript - ログイン成功後の転送
正しくログインした後、ユーザーを転送したい。React-router を使用して Router パスを解決します。
うまくいかなかったさまざまなことを試しました(コメント行を参照)。
現在、私は使用しようとしていますhistory.push()
が、コンパイラは言う
history.push は関数ではありません。
からの push メソッドが使用されていないことに気付きました"redux-router"
..代わりに、おそらく存在しない小道具のメソッドを探します。
それ、どうやったら出来るの?
前もって感謝します。
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
考え?