Итак, я убедился, что я connect
мой mapDispatchToProps
правильно и правильно связал функции (я думаю), а также убедился, что опечаток нет.
Но по какой-то причине следующий код, дающий мне отправку, не является ошибкой функции:
import React from 'react';
import {View, Button} from 'react-native';
import { DrawerNavigator, DrawerItems } from 'react-navigation';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
import aboutScreen from './About';
import settingScreen from './Setting';
import Home from './Home';
import Login from '../../auth/scenes/Login';
import * as authAction from '../../auth/actions';
import * as homeAction from '../actions';
export const mapDispatchToProps = (dispatch) => ({
actionsHome: bindActionCreators(homeAction, dispatch),
actionsAuth: bindActionCreators(authAction, dispatch)
});
const CustomDrawerContentComponent = (props) => (
<View>
<DrawerItems {...props}/>
<Button title="Logout" onPress={()=>props.screenProps()}/>
</View>
);
const Drawer = DrawerNavigator({
Home: {
screen: Home
},
About: {
screen: aboutScreen
},
Setting:{
screen: settingScreen
},
},
{
initialRouteName: 'Home',
contentComponent: CustomDrawerContentComponent,
drawerOpenRoute: 'DrawerOpen',
drawerCloseRoute: 'DrawerClose',
drawerToggleRoute: 'DrawerToggle'
}
);
class DrawNav extends React.Component{
constructor(){
super();
this.onSignOut = this.onSignOut.bind(this);
}
onSuccess() {
this.props.actionsHome.successSignOut();
Actions.reset("Auth");
}
onError(error) {
Alert.alert('Oops!', error.message);
}
onSignOut() {
this.props.actionsAuth.signOut(this.onSuccess.bind(this),this.onError.bind(this))
}
render(){
return <Drawer screenProps = {this.onSignOut}/>;
}
}
export default connect(mapDispatchToProps) (DrawNav);
Я попробовал подобную настройку на моем домашнем компоненте, и это сработало. Это всего лишь копия и вставка из схемы выхода из системы Home, потому что мне нужна кнопка выхода из системы на моем ящике вместо Home.
Может кто-нибудь помочь мне указать, что я здесь упустил?
Заранее спасибо! :)