Действия должны быть простыми объектами. Используйте пользовательское промежуточное ПО для асин c действий, когда у меня уже есть Thunk - PullRequest
0 голосов
/ 02 марта 2020

Я применил промежуточное программное обеспечение Thunk, но все еще получаю нечистую ошибку. Я был бы очень признателен за любую помощь.

Где я вызываю создателя

import React from 'react'
import { StyleSheet, Text, View, Button } from 'react-native'
import { shallowEqual, useSelector, useDispatch } from 'react-redux'
import { signIn } from '../../redux/actions/user'

const LogInOrSignUpScreen = () => {
  const user = useSelector(state => state.user, shallowEqual)

  return (
    <View>
      <Text>Login Or Sign up</Text>
      <Button title='clicked' onPress={useDispatch(signIn('ok', 'dal'))} />
    </View>
  )
}

export default LogInOrSignUpScreen

Редуктор

export const userReducer = (state = { ...initState.user }, action) => {
  switch (action.type) {
    case SIGN_IN_ERROR:
      return state;
    // case SIGN_IN_PENDING:
    //     return state;
    case SIGN_IN_SUCCESS:
      return { ...state, ...action.data }
    default:
      //console.log(state)
      return state;
  }
}

Асин c Создатель действий:

export function signIn(userId, pass) {
  let creditials = { userId, pass }
  return async (dispatch) => {
    dispatch(signInPending())
    try {
      console.log('clicked')
    } catch (e) {
      console.log(e);
      dispatch(signInError());
      // return;
    }
    dispatch(signInSuccess(creditials))
  }
}

Настроить магазин

import { createStore, applyMiddleware } from 'redux';
import thunkMiddleware from 'redux-thunk'

import { initialState } from './dataModel'
import rootReducer from './reducers'

export function configureStore() {
  return createStore(
    rootReducer,
    initialState,
    applyMiddleware(thunkMiddleware)
  )
}

export default configureStore;

Приложение. js

const store = configureStore()

const Stack = createStackNavigator();

  <Provider store={store}>
    <NavigationContainer>
      {isUserLoggedIn()}
    </NavigationContainer>
  </Provider>
)

Приведенный ниже текст соответствует требованию, чтобы у меня было больше информации о наполнителе по вопросу, за который я приношу свои извинения.

Я применил промежуточное программное обеспечение Thunk, но все еще получаю нечистую ошибку. Буду очень признателен за любую помощь.

1 Ответ

0 голосов
/ 02 марта 2020
    const dispatch = useDispatch()

Я просто использовал необработанную функцию useDispatch ... вместо сохранения экземпляра в переменной .....

спасибо за просмотр моей проблемы, и я надеюсь, что это поможет кому-то другому как хорошо.

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