ページネーションを実装したい。したがって、ユーザーが下にスクロールすると、私はAPI呼び出しを行いたいと思います。私はwindow.scrollを通して見ます私はスクロールの位置を見つけることができ、それを達成することができます。しかし、私は証明書データを取得するために還元状態にアクセスする必要があります。このイベントはコンポーネントによってバインドされていないため、データを渡すことはできません。このシナリオで正しいアプローチは何でしょうか? 単純な関数を使ってreduxストアにアクセスしたいのですがどうしたらいいですか?スクロールでは、どのようにリクエストが通過するのを確認するのですか?window.scrollで還元状態を取得
答えて
connectコンポーネントをスクロールできます。ストア情報を持つコンポーネントに小道具を渡すことができます。それらはあなたの店に達するための2つの推奨された方法です。あなたは文脈を見ることもできると言われています
class MyComponent extends React.Component {
someMethod() {
doSomethingWith(this.context.store);
}
render() {
...
}
}
MyComponent.contextTypes = {
store: React.PropTypes.object.isRequired
};
注:コンテキストはオプトインです。コンポーネントを取得するには、コンポーネントにcontextTypes
を指定する必要があります。あなたはちょうどこれを行うことができます提供明快さとコメントパー
:それは将来のバージョン
編集で廃止される可能性があるのでそれは完全な解決策ではないかもしれないReact's Context doc上に読む
。
スクロールリスナー機能を抑制できるように、インポートにlodashを追加しました。ハンドラ関数を1秒間に何度も呼び出すか、またはページの遅れを開始するだけです(リスナー関数の重さに応じて)
スクロールするコンポーネントを接続することはできますか?そのコンポーネントは何でしょうか? window.scrollを呼びたいからです。私はスクロールのための固定されたコンテナを必要としません。私はfacebookのようなものがあなたがスクロールダウンするときに新しいデータを取得するようにしたいです – scripter
@scripter私はあなたが 'window.scroll'リスナーを扱う' InfiniteScroll'コンポーネントを作成しようとしていると仮定しています。一箇所。私は、コンポーネント(または、あなたが無限のスクロールコンポーネントを作成していない場合、より多くのデータを要求する必要があるコンポーネント)を接続できると言っていました。 –
あなたが必要でない場合は、店舗経由で直接還元店を使用しないでください。この場合、Componentsとreduxストアを接続するための公式のモジュールを用意してください: 'react-redux'; – floriangosse
コンポーネントのアプリケーション状態にアクセスする正しい方法は、react-redux
の使用方法です。セレクタ関数。
react-redux
は、connect
と呼ばれる機能を提供します。この関数を使用して、状態のどの値をコンポーネントの小道具にマップするかを定義し、これらの値を使用できるようにする必要があります。
このマッピングに必要な機能は、mapStateToProps
と呼ばれ、コンポーネントに渡すべき値を持つオブジェクトを返します。
また、コンポーネントで使用可能にする必要があるレビュックスアクションを定義することもできます(たとえば、次のページの読み込みをトリガーするため)。この関数はmapDispatchToProps
と呼ばれます。ここで
例:
import React from 'react';
import { connect } from 'react-redux';
import { getUsersPage } from './selectors';
import { loadUsersPage } from './actions';
class MyComponent extends React.Component {
handleScroll() {
this.props.loadUsersPage({ page: lastPage + 1 });
}
render() {
const users = this.props.users;
// ...
}
}
const mapStateToThis = (state) => {
return {
users: getUsers(state)
};
}
const mapDispatchToProps = (dispatch) => {
return {
loadUsersPage: (payload) => {
dispatch (loadUsersPage(payload));
}
}
};
export default connect()(MyComponent);
- 1. 還元還元剤で他の還元剤の状態を取得する
- 2. コードからの還元された還元状態の保存状態
- 3. オブジェクトに還元状態をバインドする
- 4. 還元状態がそれが
- 5. 還元状態ツリーの設計
- 6. componentWillReceiveProps状態が還元状態更新後のレンダリング状態と異なる
- 7. 還元還元剤に含まれる反応還元反応には、状態が含まれています
- 8. 還元状態で大きなリクエストを維持
- 9. reactjs状態は還元しないで更新します
- 10. 還元状態のjsonを保存する
- 11. この還元剤の状態を変えていますか?
- 12. 還元状態ツリー内に新しいデータを追加
- 13. 還元状態を地元の状態にコピーすることは還元的な哲学に反していますか?
- 14. meteor.js:還元とセッション変数と反応状態
- 15. 還元状態ツリーの項目が重複しています
- 16. 還元状態変更後のDOM操作の処理
- 17. 還元のための不変状態の必要性
- 18. 1つの還元ダックから別の還元ダックに状態を渡すには?
- 19. 還元/反応しているアプリの状態に還元剤の名前のプロパティがあります
- 20. React js、還元状態をローカル状態に保存する最良の方法は何ですか?
- 21. コンポーネントの反応状態と還元状態を組み合わせるのは正しいですか?
- 22. 還元状態で状態が変化した場合、反応は再描画できません
- 23. 還元状態で約束を返す関数を置きます
- 24. ディスパッチ後に還元状態を更新することができません
- 25. リアックスで還元状態の特定のスライスを更新するには
- 26. どのように反応還元状態を維持するのですか?
- 27. reactjsプレゼンテーションcomopnentは還元状態の変更で再レンダリングされません
- 28. jsxコンテンツを還元状態にしてそこからレンダリングする
- 29. 還元状態の変更時に要素を削除します
- 30. ネストされた還元状態から要素を削除します
私はそれを使用し、おそらく[反応-無限スクロール]していない(https://github.com/CassetteRocks/react-infinite-scroller)お手伝いをすることができます。 –
@JoPeyperありがとう。私は何かhttps://github.com/brigade/react-waypointが面白く見えることが分かった。 – scripter