Relayやgraphql-javaサーバから受信した名前のリストをフィルタリングすることができますか?私のGrpahQLスキーマの変更はこの目的のためにReactJSのみを使用しています。
--- MobXは状態管理ライブラリとして決定できますが、まずすべてのリレー結果を保存する必要があります。GrpahQLを呼び出さずにRelayJSのデータを使ってReactJSをフィルタリングする
答えて
警告の買い手:私はこれらの同じ概念に苦労Relay
で新しめだとしても&。しかし、Relay
のアクセス可能な情報が不足しているため、ここで重要な概念を試してレイアウトすることが役立つと思いました。私の理解は間違っている可能性があるので、私のコード/推論で間違いを見つけた人が誰でもコメント/編集するなら、私はそれを愛するでしょう。
フィルタリングには、「クリック」するまでにしばらく時間がかかりました。それはあなたがフィルターに使用しますデータを保持する場所によって異なりますが、さんがあなたのUsers Type
上name
フィールドの生活を想定してみましょう、とクエリは、このようなものです:
viewer {
allUsers {
edges {
node {
name
}
}
}
}
とのあなたのトップレベルNameList
コンポーネントとしましょう
class NameList extends Component {
render() {
return (
<div>
{this.props.users.edges
.map(u => {
<NameItem name={u.node} />
})
}
</div>
)
}
}
Relay.createContainer(NameList, {
initialVariables: { first: 10 },
fragments: {
users:() => Relay.QL`
fragment on Viewer {
allUsers(first: $first) {
edges {
node {
${NameItem.getFragment('user')}
}
}
}
}
`
}
})
そして、あなたのNameItem
セットアップが単純だった:
class NameItem extends Component {
render() {
return (
<div>
Name: {this.props.user.name}
</div>
)
}
}
Relay.createContainer(NameItem, {
initialVariables: {},
fragments: {
user:() => Relay.QL`
fragment on User {
name
}
`
}
})
がgeneralizabを考えてみましょう。このように見えましたここルパターン:List
コンポーネントは、クエリのトップレベルType
で断片をとる
リストコンポーネント - この場合、Viewer
で、Relay container
から。
List
は、User Type
レベルの子Item
の代わりにfragment
を挿入します。
つまり、User
オブジェクトの配列をキャプチャし、それはItem
コンポーネントに渡されます。
これはRedux
、たとえば、Relay
なかったし、その代わりだった場合、このコンポーネントは、単にItem
コンポーネントにstate.users
を渡すかもしれません。ある時点で、自分のバックエンドから手動でUser
をすべて抽出し、Redux
にロードしたので、これを行うことができます。しかし、Relay
はあなたのために難しい考えをしているので、それはRedux
よりも十分多くの情報を必要とします。
項目コンポーネント
これは、より簡単です。タイプUser
のエンティティがあり、name
をレンダリングします。構文の他に、ここの機能は、Redux
セットアップの類似のコンポーネントとほとんど変わりません。
実際にのように、Relay
の複雑さがなくても、レンダリングしているアイテムの配列だけがあります。バニラReact
では、.map()
に電話する前に(またはその間に)アレイをフィルタリングしてrender()
にするだけです。 child
に渡さfragment
がparent
--ieに不透明である
しかし、Relay
と、List
はItem
にブラインドパッケージを手渡しているので、それに合格するか否かの判断を下すことができませんこれは、fragment
のコンテンツに基づいています。
name
フィールドは、parent
とchild
のレベルでちょうど剥がしただけで簡単に解決できます。覚えておいてください:Relay
は、どのようなデータが必要ですか?GraphQL
を伝えるコンポーネントです。 List
コンポーネントには、フィルタリングを行うフィールドが必要です。
我々は上記List
コンテナ変更する場合:
...
users:() => Relay.QL`
fragment on Viewer {
allUsers(first: $first) {
edges {
node {
name
${NameItem.getFragment('user')}
}
}
}
}
`
そして、我々は我々のrender
機能を更新:
<div>
{this.props.users.edges
.map(u => {
if (u.node.name == "Harvey") {
<NameItem name={u.node} />
}
})
}
</div>
をその後、我々は、mobx
を必要とせずに複数のサーバーの旅行などを基本的なフィルタリングを達成しました
- 1. JQuery JqGrid:フィルタリングするためにローカルと呼び出しサーバーを使用せずにグリッドをフィルタリングする方法
- 2. C++コンストラクタを呼び出さずに配列を使用する
- 3. asyncを使用せずにajax呼び出しのデータを使用する:false
- 4. コンストラクタを呼び出さずにクラス内のメソッドを呼び出す
- 5. 最初にgroupbyを呼び出さずにaggを呼び出す
- 6. ReactJSキャッシングなしでJSONデータを呼び出す方法は?
- 7. 手動でajaxを呼び出さずにデータテーブルのデータを更新する
- 8. onclickと関数の呼び出しを使用してreactjs
- 9. ReactJs親機能を呼び出す
- 10. reactjsでapiを呼び出す
- 11. メソッドの呼び出し元をトラッキングする[呼び出しによって呼び出された]
- 12. メンバを呼び出さずに静的コンストラクタを呼び出す方法
- 13. MVCがモデルを呼び出さずに部分ビューを呼び出す
- 14. Observableを使ってデータをフィルタリングする
- 15. W/art:DetachCurrentThreadを呼び出さずに出てきたネイティブスレッドVlcObject
- 16. ReactjsテストAPI呼び出し
- 17. プログラム型のUI:super.loadViewを呼び出さず、super.viewDidLoadを呼び出しますか?
- 18. `ref`によって呼び出されたinput.focus()は` onBlur`イベントを呼び出す
- 19. API呼び出しによるデータのフィルタリング
- 20. PHPを使って呼び出されたページに.htaccessを使用する
- 21. ReactJS - fClickInのコンポーネントを呼び出すためにクリックしてください
- 22. アプリケーション名を呼び出さずにDLL名を取得する
- 23. 関数を呼び出さずにオブジェクトを保存するR
- 24. 親を呼び出さずにデストラクタをオーバーライドする
- 25. relayjsフラグメントデータのデータ型
- 26. C#Linqを使ってリストをフィルタリングするには、ToListメソッドを呼び出す必要がありますか?
- 27. numpy genfromtxtを使ってPythonでcsvデータをタプルに呼び出す方法は?
- 28. Android:ローカルのカメラアプリを呼び出さずに写真を撮る
- 29. 最初にmeshgridを呼び出さずにMatlab interp3を使用する
- 30. OpenCoverで関数を呼び出してコードカバレッジをフィルタリングする
"名前のリストをフィルタリングする" - なぜReactJS固有のことが必要なのでしょうか?プレーンなJavaScriptはできませんか? –