ネストされたオブジェクトをクエリとして送信するReactルーター

アニルード・スリダール

私が使用していますrouter.push次のコードを使用して、私のURLを更新するには:

data = {url: 'abc', id: 1234}
this.props.router.push(
    path: 'app/p/1',
    query: {search: data}
)

ただし、これによりクエリは次のように設定されます?search=%5Bobject+Object%5D

jQuery paramを使用してネストされたオブジェクトをクエリに変換しようとしましたが、reactrouterはクエリを通常の文字列として解析します

data = {url: 'abc', id: 1234};
search = $.param({search: data});
this.props.router.push(
    path: 'app/p/1',
    query: search
)

これにより、クエリは次のように設定されます。

0=s&1=e&10=i&11=t&12=e&13=_&14=u&15=r&16=l&17=%25&18=5&19=D&2=a&20=%3D&21=a&22=b&23=c&24=d&3=r&4=c&5=h&6=%25&7=5&8=B&9=s

編集

データの値は動的に生成され、固定されていません。これは常にキーと値のペアになります。

編集2

ここで使用されているフィルター機能を複製したいと思いますすべてのフィルターはqオブジェクト内に実装されています。たとえば、ユーザー名の検索は次のようになります。q[username]=abcd

クエリを次のように設定したいと思います:search[url]=abc&search[id]=123これはsearch%5Burl%5D=abc&search%5Bid%5D=123、URLの観点からを意味します。

これはどのように達成できますか?

ウィリアム・マーティンズ

まず、react-routerv3のドキュメントを参照して質問に答えます。

react-router使用しているバージョンはわかりませんが、と同じである必要がv2ありますv4

https://github.com/ReactTraining/react-router/tree/v3.0.5/docs

router#push方法:

またはrouter#push使用して確認できます。stringlocation descriptor

これlocation descriptorは、オブジェクトを使用するQuery場合、オブジェクトを使用します。

したがって、location descriptorオブジェクトを使用する場合、メソッドは次のようになります。

let data = { url: 'abc', id: 1234 };

this.props.router.push({
    path: 'app/p/1',
    query: data
});

文字列をクエリ文字列として使用する:

カスタム文字列を渡したい場合(役立つ場合があります)search、を受け取る、を使用する必要がありますQueryString

問題が発生している理由:

react-router クエリオブジェクトがkey:valueとして渡されることを期待していますが、ネストのケースを処理できないと思います。

あなたにできること:

あなたはqsそれを処理するために素晴らしいモジュールを使うことができます

const qs = require('qs');

let data = { url: 'abc', id: 1234 };
let query = qs.stringify({ search: data }); // produces: 'search%5Burl%5D=abc&search%5Bid%5D=1234'

this.props.router.push({
    path: 'app/p/1',
    search: query
});

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ネストされたオブジェクトをhttp.getのパラメータとして送信する

分類Dev

ネストされたオブジェクトを関数パラメーターとして破棄する

分類Dev

エスケープ文字なしでネストされたJSONオブジェクトを送信する

分類Dev

エスケープ文字なしでネストされたJSONオブジェクトを送信する

分類Dev

JSPページがAJAXを使用して送信されたときにリクエストオブジェクトを取得する

分類Dev

React:ネストされたjsonデータを親データとマージして複数のオブジェクトを作成する

分類Dev

オブジェクトをパラメーターとしてPOSTリクエストに送信する方法

分類Dev

.where()を使用してバックボーンでモデルのネストされたオブジェクトをクエリする方法

分類Dev

Elasticsearchでネストされたオブジェクトを持つフィールドをクエリする

分類Dev

ページオブジェクトを使用してネストされたテーブル内のリンクをクリックする

分類Dev

ネストされたオブジェクトにデータを配置するLINQクエリ

分類Dev

生成された子プロセスからIPCチャネルを介してエラーオブジェクトを送信する

分類Dev

Strut2SpringTestCaseを使用したStruts22.3.24のテストケース(リクエストオブジェクトはnullとして送信されます)

分類Dev

Pythonメールライブラリを介してメールを送信すると、「予期された文字列またはバイトのようなオブジェクト」というエラーがスローされます

分類Dev

キーを名前でフィルタリングし、jqを使用してネストされたオブジェクトにアクセスする方法

分類Dev

ネストされたオブジェクトによるクエリ/フィルターは、いくつかのネストされたオブジェクトで予期しない結果を取得します

分類Dev

ローカルストレージを使用して、ネストされたオブジェクトに動的キーを使用してデータを保存する

分類Dev

forinループを使用してネストされたオブジェクトにアクセスする

分類Dev

ネストされたオブジェクトデータを含むオブジェクトをループし、カード内のデータを使用してレンダリングしようとしています

分類Dev

ネストされたjsonをリクエストパラメータとしてswiftで送信する方法は?

分類Dev

メールのPythonとしてきれいに印刷されたjsonオブジェクトを送信する方法

分類Dev

ストリームを使用してオブジェクトの別のリストにネストされたオブジェクトのリストから属性をフィルターする

分類Dev

配列内の値と一致するキーに基づいてネストされたオブジェクトをフィルタリングする

分類Dev

Rails-ネストされたRESTfulルートを使用してオブジェクトを作成する

分類Dev

ネストされた関連付けとグループ(関連付けられたオブジェクトによる)を使用したRailsクエリ

分類Dev

データ内のオブジェクトのネストされたループを使用してSectionListをレンダリングする方法

分類Dev

MoshiでネストされたJSONオブジェクトではなく、文字列化されたJSONとしてオブジェクトのフィールドをエンコードするにはどうすればよいですか?

分類Dev

REST APIリクエストペイロードでPOJOオブジェクトをシリアル化された文字列として提供する

分類Dev

ネストされたループのない配列を使用してオブジェクトの配列をフィルタリングするjs

Related 関連記事

  1. 1

    ネストされたオブジェクトをhttp.getのパラメータとして送信する

  2. 2

    ネストされたオブジェクトを関数パラメーターとして破棄する

  3. 3

    エスケープ文字なしでネストされたJSONオブジェクトを送信する

  4. 4

    エスケープ文字なしでネストされたJSONオブジェクトを送信する

  5. 5

    JSPページがAJAXを使用して送信されたときにリクエストオブジェクトを取得する

  6. 6

    React:ネストされたjsonデータを親データとマージして複数のオブジェクトを作成する

  7. 7

    オブジェクトをパラメーターとしてPOSTリクエストに送信する方法

  8. 8

    .where()を使用してバックボーンでモデルのネストされたオブジェクトをクエリする方法

  9. 9

    Elasticsearchでネストされたオブジェクトを持つフィールドをクエリする

  10. 10

    ページオブジェクトを使用してネストされたテーブル内のリンクをクリックする

  11. 11

    ネストされたオブジェクトにデータを配置するLINQクエリ

  12. 12

    生成された子プロセスからIPCチャネルを介してエラーオブジェクトを送信する

  13. 13

    Strut2SpringTestCaseを使用したStruts22.3.24のテストケース(リクエストオブジェクトはnullとして送信されます)

  14. 14

    Pythonメールライブラリを介してメールを送信すると、「予期された文字列またはバイトのようなオブジェクト」というエラーがスローされます

  15. 15

    キーを名前でフィルタリングし、jqを使用してネストされたオブジェクトにアクセスする方法

  16. 16

    ネストされたオブジェクトによるクエリ/フィルターは、いくつかのネストされたオブジェクトで予期しない結果を取得します

  17. 17

    ローカルストレージを使用して、ネストされたオブジェクトに動的キーを使用してデータを保存する

  18. 18

    forinループを使用してネストされたオブジェクトにアクセスする

  19. 19

    ネストされたオブジェクトデータを含むオブジェクトをループし、カード内のデータを使用してレンダリングしようとしています

  20. 20

    ネストされたjsonをリクエストパラメータとしてswiftで送信する方法は?

  21. 21

    メールのPythonとしてきれいに印刷されたjsonオブジェクトを送信する方法

  22. 22

    ストリームを使用してオブジェクトの別のリストにネストされたオブジェクトのリストから属性をフィルターする

  23. 23

    配列内の値と一致するキーに基づいてネストされたオブジェクトをフィルタリングする

  24. 24

    Rails-ネストされたRESTfulルートを使用してオブジェクトを作成する

  25. 25

    ネストされた関連付けとグループ(関連付けられたオブジェクトによる)を使用したRailsクエリ

  26. 26

    データ内のオブジェクトのネストされたループを使用してSectionListをレンダリングする方法

  27. 27

    MoshiでネストされたJSONオブジェクトではなく、文字列化されたJSONとしてオブジェクトのフィールドをエンコードするにはどうすればよいですか?

  28. 28

    REST APIリクエストペイロードでPOJOオブジェクトをシリアル化された文字列として提供する

  29. 29

    ネストされたループのない配列を使用してオブジェクトの配列をフィルタリングするjs

ホットタグ

アーカイブ