如何解决:承诺拒绝:TypeError:payload.action.type.startsWith不是函数。在'payload.action.type.startsWith(“ Navigation”)中

时间:2019-12-27 02:09:19

标签: react-native react-redux react-navigation

我有以下代码。

  • ProductsReducer.js
// Actions
export const ADD_PRODUCT = "products.add";

const initialState = {
  products: {}
}

export default (state = initialState, action) => {
  switch (action.type) {
    case ADD_PRODUCT: {
        return {...state, payload: action.payload}
    }
    default:
      return state
  }
}
  • ProductsActions.js
import ADD_PRODUCT from '../reducers/ProductsReducer'


export const addFavoriteProduct = (product) => {
  return async(dispatch, getState) => {
    const newProduct = product

    await dispatch({type: ADD_PRODUCT, payload:newProduct})

    return true
  }
}

我试图在 ProductsActions.js 中调度默认操作,但是这不起作用。我收到此错误: Promise Rejection by TypeError

1 个答案:

答案 0 :(得分:0)

由于 ProductsReducer.js 包含名为ADD_PRODUCT的命名导出,因此导入必须为:

import {ADD_PRODUCT} from '../reducers/FavoriteReducer'

因为import ADD_PRODUCT ...仅在ADD_PRODUCT具有默认导出的情况下有效。