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>
);
}