【问题标题】:TypeError: undefined is not an object (evaluating 'availableMeals.filter'). I don't why I am getting this error类型错误:未定义不是对象(评估“availableMeals.filter”)。我不知道为什么会收到此错误
【发布时间】: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


【解决方案1】:

问题在于你的减速器,

const mealsReducer = (state = intialState, action) => {
  return action;
};

您正在返回一个动作而不是状态。请将其更改为

const mealsReducer = (state = intialState, action) => {
      return state;
    };

【讨论】:

  • 谢谢!我正在返回一个动作而不是状态,这就是我收到此错误的原因。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-02
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多