this.props.getUser не является функцией mapDispatchToProps - React Native, Redux - PullRequest
0 голосов
/ 09 марта 2020

Поскольку я только что реализовал Redux в своем собственном собственном проекте, я создал первый редуктор, действие и хранилище, но он не работает.

componentDidMount

this.props.getUser(user());

console.log('Props: ', this.props);

console.log:

Props:  {screenProps: undefined, navigation: {…}}

Диспетчер

const mapDispatchToProps = (dispatch) => {
    return ({
        getUser: (data) => dispatch(data)
    })
}
export default connect(mapStateToProps, mapDispatchToProps)(homeNav);

Функция пользователя

export function user () {
    return dispatch => {
        console.log(21312312);
        dispatch(request({}))
    }

    function request (user) {
        return { type: GET_USER_REQUEST, user }
    }

    function success (user) {
        return { type: GET_USER_SUCCESS, user }
    }

    function failure (error) {
        return { type: GET_USER_FAILURE, error }
    }
}

Пожалуйста, проверьте скриншот ниже, чтобы проверить, как импортируется homeNav

enter image description here

1 Ответ

0 голосов
/ 09 марта 2020

попробуйте изменить это getUser: (data) => dispatch(data)

на

getUser: (data) => dispatch(user(data))

, а это this.props.getUser(user());

на

this.props.getUser(data);

Также необходимо обернуть ваше приложение, как показано ниже

import { Provider } from 'react-redux';
import Route from './route';
let store = createStore(Reducers);

class App extends Component {
    render() {
        return (
            <Provider store={store}>
                <Route />}
        </Provider>
        );
    }
}

export default App;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...