Che*_* S. 5 reactjs react-native react-redux
我工作useSelector
的react-redux
在我的阵营原生应用程序,我收到以下错误:
TypeError: TypeError: (0, _reactRedux.useSelector) is not a function.
我的代码是:
import { useSelector } from 'react-redux';
const availableMeals = useSelector(state => state.meals.filteredMeals);
根据官方文档,这是最简单的用法,useSelector
但我收到此错误。
以前,我Redux
在我的项目中遇到另一个错误,但它在一夜之间自动解决了,所以这个问题与某些缓存有关吗?
我该如何解决这个问题?
这是我的代码:
import React from 'react';
import { useSelector } from 'react-redux';
import { CATEGORIES } from '../data/dummy-data';
import MealList from '../components/MealList';
function CategoryMealScreen(props) {
const catId = props.navigation.getParam('categoryId');
const availableMeals = useSelector(state => state.meals.filteredMeals);
const displayedMeals = availableMeals.filter(meal => meal.categoryIds.indexOf(catId) >= 0);
return <MealList listData={displayedMeals} navigation={props.navigation} />;
};
CategoryMealScreen.navigationOptions = navigationData => {
//console.log(navigationData);
const catId = navigationData.navigation.getParam('categoryId');
const selectedCategory = CATEGORIES.find(cat => cat.id === catId);
return {
headerTitle: selectedCategory.name,
};
};
export default CategoryMealScreen;
Run Code Online (Sandbox Code Playgroud)
useSelector() 挂钩仅接受函数作为输入,因此要解决您的问题,您必须创建一个函数来处理您的逻辑,然后在 useSelector 中调用它。这是一个例子:
这是一个 es6 函数
const getMeals(state) => {
return state.meals.filteredMeals;
}
Run Code Online (Sandbox Code Playgroud)
然后将你的函数传递给 useSelector ,如下所示:
const availableMeals = useSelector(getMeals(myState));
Run Code Online (Sandbox Code Playgroud)
你可以把这个函数(getMeals)放在你当前的组件中,甚至放在你的reducer中。
归档时间: |
|
查看次数: |
4529 次 |
最近记录: |