React native UI Kitten功能组件-道具未定义

React native UI Kitten功能组件-道具未定义,react-native,react-native-ui-kitten,React Native,React Native Ui Kitten,我正在使用UI Kitten开发一个react本地移动应用程序。对于react native和UI kitten,我还是个新手,所以我只使用普通Javascript模板而不是Typescript模板 我有一个功能组件屏幕,如下所示。这个屏幕工作正常。今天我开始REDUX实现 const RequestScreen = ({ navigation }) => { // code removed for brevity } 在这个屏幕中,我使用useEffect钩子从API中获取数据

我正在使用UI Kitten开发一个react本地移动应用程序。对于react native和UI kitten,我还是个新手,所以我只使用普通Javascript模板而不是Typescript模板

我有一个功能组件屏幕,如下所示。这个屏幕工作正常。今天我开始REDUX实现

const RequestScreen = ({ navigation }) => {
 // code removed for brevity
}
在这个屏幕中,我使用useEffect钩子从API中获取数据

  useEffect(() => {
    const unsubscribe = navigation.addListener("focus", () => {
      getServices();
    });

    return () => {
      unsubscribe;
    };
  }, [navigation]);

  const getServices = async () => {
    setLoading(true);
     // helper function to call API  
    await getAllServices().then((response) => {
      if (response !== undefined) {
        const services = response.service;
        setServices(services);
        setLoading(false);
      }
    });
    // update redux state
    props.getAllServices(services);
    
  };

 // code removed for brevity

const mapStateToProps = (state) => state;
const mapDispatchToProps = (dispatch) => ({
  getServices: (services) =>
    dispatch({
      type: Types.GET_SERVICES,
      payload: { services },
    }),
});

const connectComponent = connect(mapStateToProps, mapDispatchToProps);
export default connectComponent(RequestScreen);
在这一行代码中:

props.getAllServices(services);
我不断地发现这个错误:

[未处理的承诺拒绝:TypeError:undefined不是对象 (评估'props.getAllServices')] tryCatch中的节点\u modules\registrator runtime\runtime.js:63:36位于 调用中的节点\模块\再生器运行时\运行时.js:293:29

每当我试图在这里的代码中使用“道具”时。我遇到了错误如何在此屏幕上获取道具?

我试图改变屏幕,如下所示,但这也不起作用

const RequestScreen = ({ navigation, props }) => {
  // code removed
}

在更改屏幕组件后,我能够获得道具对象,如下所示

const RequestScreen = ({ navigation, ...props }) => {}

您的问题与您试图使用容器模式有关,该模式用于类组件,要在功能组件中使用redux,您应该使用useSelector和useDispatch from redux。我将屏幕组件签名更改为const RequestScreen=({navigation,…props}=>{}现在我在props对象中得到了一些东西,但是我的props.getAllServices仍然抛出一个错误。