プロジェクトでReduxを試しています。 は私が価格を持っているすべてが、国のリストを持っている、と私はminPrice
とmaxPrice
値の間の価格で国を選択します。私はこの方法でそれをやっています:状態変更後にメソッドを呼び出す
filterPrice: function(minPrice, maxPrice) {
var newCountries = [];
_.forEach(this.props.countries, function(country) {
var price = country["price"];
if(minPrice <= price && price <= maxPrice) {
newCountries.push(country);
}
});
this.setState({countries: newCountries});
}
ここで、私はこの方法をReduxアーキテクチャによって何とか呼びたいと思います。
私は、この減速機を持っている:
const initialState = {
minPrice: 0,
maxPrice: Constants.PRICE_RANGE
};
export default function PriceReducer(state = initialState, action) {
switch (action.type) {
case types.UPDATE_MAX:
return {
maxPrice: action.maxPrice
}
case types.UPDATE_MIN:
return {
minPrice: action.minPrice
}
default:
return state;
}
}
そして、これらのアクション:
export const updateMax = (maxPrice) => {
return {
type: types.UPDATE_MAX,
maxPrice: maxPrice
};
}
export const updateMin = (minPrice) => {
return {
type: types.UPDATE_MIN,
minPrice: minPrice
};
}
私はこのような店舗作成しております:
const store = createStore(PriceReducer);
をそして、私はこのようにそれを呼び出しています:
store.dispatch({type: types.UPDATE_MIN, minPrice: 10});
どうすればfilterPrice
に電話をかけることができますか? 私はそれを呼び出せない場合、どのように状態を変更するのですか?
構造が少し混乱しているようです。あなたは 'filterPrice'関数で' this.setState() 'を呼び出しています - これはReactコンポーネントの中にあることを意図していますか? Reduxのアクションが送信され、ストアが更新された後でそれを呼び出したいですか?それともあなたの減量のロジックの一部としてそれを使いたいですか? – markerikson
はい、これはReactコンポーネント内にあります。 'minPrice'または' maxPrice'のいずれかを変更すると、そのメソッドが呼び出されるようにしたいと思います。あるいは、呼び出すことができない場合は、実行される変更が欲しいです。 – octavian
はreduxに接続するコンポーネントですか? – Mike