【发布时间】:2017-11-02 08:19:07
【问题描述】:
我正在使用 react 和 redux 构建一个应用程序。一项功能特性是根据状态过滤结果。 所以在每个类 Component 我都有这样的东西:
filteredResults = this.filterResults(this.props.value1, this.props.value2,...)
现在我认为如果我只是将filteredResults 添加到redux 状态并引入一个RootReducer,应该会有性能提升。实际上,这减慢了应用程序的速度。知道为什么会这样吗?对我来说,这有点违反直觉,因为过滤结果现在被计算了很多次。
PS:这就是我的 RootReducer 的样子:
import {_getFilteredResults} from "../components/utils";
const createFilterRootReducer = reducer => (state, action) => {
let reduced_state = reducer(state, action);
let filteredResults = _getFilteredResults(reduced_state.value1, reduced_state.value2, reduced_state.value3, reduced_state.results);
return {...reduced_state, filteredResults:filteredResults}
};
export default createFilterRootReducer;
应用在 myRootReducer 上
const rootReducer = combineReducers({
searching: ReducerSearching,
roomOption: ReducerZimmer,
maxPrice: ReducerMaxPrice,
minPrice: ReducerMinPrice,
internalMaxPrice: ReducerInternalMaxPrice,
Address: ReducerAddress,
Results: ReducerResults,
activePage: ReducerActivePage,
favoriteResults:ReducerLikedItems,
resultSort: ReducerSort,
acceptedCookie: ReducerCookies,
headerHeight: ReducerHeaderHeight,
mapView: ReducerMapView,
rehydrate: ReducerRehydrate
});
export default createFilterRootReducer(rootReducer);
还有一件事:我还在使用“redux-persist”来保持状态!
【问题讨论】:
标签: reactjs react-redux reducers