【发布时间】:2021-05-26 08:16:56
【问题描述】:
我正在使用 useSelector() 挂钩将状态作为道具传递,但我收到一条错误消息:
TypeError: undefined is not an object (evaluating 'availableMeals.filter')
/store/reducers/meals.js:
import { MEALS } from "../../Data/Dummy-Data";
const intialState = {
meals: MEALS,
filteredMeals: MEALS,
FavouriteMeals: [],
};
const mealsReducer = (state = intialState, action) => {
return action;
};
export default mealsReducer;
CategoryMealScreen.js:
import React from "react";
import { useSelector } from "react-redux";
import { CATEGORIES } from "../Data/Dummy-Data";
import MealListData from "../component/mealListData";
const CategoryMealScreen = (props) => {
const catId = props.navigation.getParam("categoryId");
const availableMeals = useSelector((state) => state.meals.filteredMeals);
const DisplayedMeal = availableMeals.filter(
(meal) => meal.categoryIds.indexOf(catId) >= 0
);
return (
<MealListData listData={DisplayedMeal} navigation={props.navigation} />
);
};
CategoryMealScreen.navigationOptions = (navigationData) => {
const catId = navigationData.navigation.getParam("categoryId");
const selectedCategory = CATEGORIES.find((cat) => cat.id === catId);
return {
headerTitle: selectedCategory.title,
};
};
export default CategoryMealScreen;
我不知道为什么会出现这个错误。
【问题讨论】:
-
不会是饭菜减速机吧? const availableMeals = useSelector((state) => state.mealsReducer.filteredMeals);
-
我不这么认为。我已经在我的初始状态下定义了膳食。但是感谢您的宝贵时间!
标签: javascript reactjs react-native react-redux react-hooks