React Native Redux : "Undefined is not an object (evaluating 'action.type')"



我在ReactNative中使用Redux,我想用reducer创建一个商店

而且,我在下面得到错误,指向函数中的"开关(动作.类型("行 切换收藏夹(( 在收藏夹Reducer.js.我发现了一个类似的主题,但它没有解决它......

undefined 不是对象(评估 'action.type'(

收藏夹减速机.js :

const initialState = { favoriteQuotes: [] }
function toggleFavorite(state = initialState, action) {
  let nextState
  switch (action.type) {
    case 'TOGGLE_FAVORITE':
      const favoriteQuoteIndex = state.favoriteQuotes.findIndex(item => item.id === action.value.id)
      if (favoriteQuoteIndex !== -1) {
        // La citation est déjà dans les favoris, on la supprime de la liste
        nextState = {
          ...state,
          favoriteQuotes: state.favoriteQuotes.filter( (item, index) => index !== favoriteQuoteIndex)
        }
      }
      else {
        // La citation n'est pas dans les favoris, on l'ajoute à la liste
        nextState = {
          ...state,
          favoriteQuotes: [...state.favoriteQuotes, action.value]
        }
      }
      return nextState || state
  default:
    return state
  }
}
export default toggleFavorite()

配置存储.js :

import { createStore } from 'redux';
import toggleFavorite from './Reducers/favoriteReducer'
export default createStore(toggleFavorite)

这是我使用"调度"的地方:

import React from 'react'
...
import { connect } from 'react-redux'
class QuoteDetail extends React.Component {
...
  _toggleFavorite() {
    const action = { type: "TOGGLE_FAVORITE", value: this.state.quote }
    this.props.dispatch(action)
  }
...
<Button title="Favoris" onPress={() => this._toggleFavorite()}/>
...
const mapStateToProps = (state) => {
  return {
    favoriteQuotes: state.favoriteQuotes
  }
}
export default connect(mapStateToProps)(QuoteDetail)

有人有想法吗?

导出时不需要调用该函数,这在您的情况下会导致错误,请将其更改为

export default toggleFavorite;

它会工作

相关内容

  • 没有找到相关文章

最新更新