React native 函数未作为react native中的道具的一部分传递

React native 函数未作为react native中的道具的一部分传递,react-native,react-props,React Native,React Props,我有一个抽屉导航器的以下代码,它是从应用程序组件显示的。我试图将指向本地函数的属性saveUser从App组件传递到MyDrawer组件,但它在MyDrawer函数中始终未定义。但是,当我将字符串属性userName传递给MyDrawer时,就会传递该属性 问题 为什么即使用户名被传递,函数也不能作为道具的一部分从应用程序组件传递到MyDrawer函数 App.js代码段 const Drawer=createDrawerNavigator(); 功能MyDrawer(道具){ 警报(“在MyD

我有一个抽屉导航器的以下代码,它是从应用程序组件显示的。我试图将指向本地函数的属性
saveUser
从App组件传递到MyDrawer组件,但它在MyDrawer函数中始终未定义。但是,当我将字符串属性
userName
传递给MyDrawer时,就会传递该属性

问题

为什么即使用户名被传递,函数也不能作为道具的一部分从应用程序组件传递到MyDrawer函数

App.js代码段

const Drawer=createDrawerNavigator();
功能MyDrawer(道具){
警报(“在MyDrawer函数中:props.saveUser为“+props.saveUser”);
警报(“在MyDrawer函数中:props.userName为“+props.userName”);
返回(
}>
);
}
导出默认函数App(){
常量setUser=()=>{
警报(“将在此功能中设置用户”);
};
setUser.bind(这个);
返回(
);
}
导出默认函数App(){
常量setUser=()=>{
警报(“将在此功能中设置用户”);
};
返回(
);
}
由于您的应用程序组件已经是具有内部功能的功能组件,因此您不必绑定它,也不必调用this.setUser。只需直接调用put setUser,您的函数就会被传递

const Drawer = createDrawerNavigator();

function MyDrawer(props) {
   alert("in MyDrawer function : props.saveUser is " + props.saveUser);
   alert("in MyDrawer function : props.userName is " + props.userName);
  return (
    <Drawer.Navigator
      drawerContent={(props) => <CustomDrawerContent {...props} />}>
      <Drawer.Screen name="Home" component={HomeStack} />
      <Drawer.Screen
        name="Create Task"
        component={CreateTaskStack}
        initialParams={{ saveUser: props.saveUser }}
      />
    </Drawer.Navigator>
  );
}

export default function App() {
  const setUser = () => {
    alert('User will be set in this function');
  };
  setUser.bind(this);
  return (
    <NavigationContainer>
      <MyDrawer saveUser={this.setUser} userName="sunil" />
    </NavigationContainer>
  );
}
export default function App() {
  const setUser = () => {
    alert('User will be set in this function');
  };
  return (
    <NavigationContainer>
      <MyDrawer saveUser={setUser} userName="sunil" />
    </NavigationContainer>
  );
}