私はカスタムスクロールバーを持っています。 2つのコンポーネントがあります。フラットリストとネストされたディレクトリ。このリストには、アクション「スクロール」を送出するonscrollハンドラがあります。減速機は、ディレクトリが静的か固定かを示す新しい状態と、現在のセクションが何であるかを返します。現在、私はディレクトリモジュールに現在のセクションが変更されたことを伝える方法を知らない。リスト・レデューサーからアクションをディスパッチすることはお勧めできません。ディレクトリモジュールにリスナーを追加する方法はわかりません。店に直接アクセスする方法がわからないからです。私は文脈を通して反応成分にしか持っていません。私はreact reduxスターターキットを使用しています。アクションから別のレデューサーにデータを伝播
更新:今後の参考のために私のソースコード
TrackList/component.js
componentDidMount() {
let {scrolled} = this.props;
window.onScroll = scrolled;
}
TrackList/module.js
scrolled(state, action) {
if (conditions) {
new_state = make_directory_static_reducer(state);
}
else {
new_state = make_directory_fixed_reducer(state);
}
let current_section = get_current_section();
new_state = current_section_reducer(new_state, current_section);
return new_state;
}
TrackDir/module.js
action_handlers = {
set_current_section() {
// I don't know how to run this when current section is set
}
}
[connect() '](https://github.com/reactjs/react-redux/blob/master/docs/api.md#connectmapstatetoprops-mapdispatchtoprops-mergeprops-options)メソッドを使用して、 Reduxストアにコンポーネントを反応させますか? –
これは、ディスパッチャと状態を反応コンポーネントに接続する方法です。しかし、私がimport {connect}を 'react-redux'から言うと、デフォルトの接続をエクスポートする(map_state_to_props、map_dispatch_to_props)(TrackList);まだモジュール内のストアにアクセスする明白な方法はありません。 – Sixtease
ストアを更新するには、アクションをディスパッチする必要があります。ストアから値を取得するには、 'connect()'を使うことができます。一般的に、コンポーネント内のストアに直接アクセスすることはお勧めできません。 –