Javascript TypeError:filteredProducts.slice不是Redux中的函数
所以我想复制filteredproducts并将其设置为sortProducts,但是当我使用slice方法时。我得到一个错误:TypeError:filteredProducts.slice不是Redux中的函数 我曾试图使filteredProducts成为正则变量,但没有成功。这是怎么回事 守则行动:Javascript TypeError:filteredProducts.slice不是Redux中的函数,javascript,reactjs,redux,Javascript,Reactjs,Redux,所以我想复制filteredproducts并将其设置为sortProducts,但是当我使用slice方法时。我得到一个错误:TypeError:filteredProducts.slice不是Redux中的函数 我曾试图使filteredProducts成为正则变量,但没有成功。这是怎么回事 守则行动: const sortProducts = (filteredProducts=[], sort)=> (dispatch)=> { const sortedProduct
const sortProducts = (filteredProducts=[], sort)=> (dispatch)=> {
const sortedProducts = filteredProducts.slice()
if(sort === 'latest'){
//sort by id
sortedProducts.sort((a,b)=> (a.id > b.id? 1: -1))
}else {
sortedProducts.sort((a,b)=> (
//highest to lowest
sort === "lowest"? a.price > b.price? 1: -1
:
a.price > b.price? -1: 1 //lowest to highest
))
}
dispatch({
type: actions.ORDER_PRODUCTS_BY_PRICE,
payload: {
sort:sort,
items: sortedProducts
}
})
}
代码缩减器:
function filteredProductsReducer (state={}, action) {
switch(action.type){
case actions.ORDER_PRODUCTS_BY_PRICE:
return {
...state,
filteredItems: action.payload.items,
sort: action.payload.sort
}
default:
return state
}
}
代码reduxStore:
import {createStore, combineReducers, applyMiddleware, compose} from 'redux'
import {producListReducer, productDetailsReducer, filteredProductsReducer} from './reducers/productReducers'
import thunk from 'redux-thunk'
import {userLoginReducer} from './reducers/UserReducer'
import shopReducer from './reducers/cartReducers'
//what should i do here?
const initialState = {}
const reducer = combineReducers({
// accepts name props
//reducer is a function that gets a state and a action and returns a new state based on the action
productList: producListReducer ,
productDetails: productDetailsReducer,
productFilter: filteredProductsReducer,
userLogin: userLoginReducer,
cart: shopReducer
})
const store = createStore(reducer,initialState, compose(applyMiddleware(thunk)))
export default store
有可能将
对象
作为filteredProducts
而不是数组
传递。