2016-12-16 66 views
1

我有這個錯誤與愛可信的JSON負載罰款,但它與一個問題渲染錯誤類型錯誤:無法轉換未定義或爲空反對

enter image description here

actions.js:

export const getUser = (callback)=>{ 
    return function(dispatch){ 
     dispatch({type: 'FETCH_GET_USER_REQUEST'}); 
     axios.get('https://jsonplaceholder.typicode.com/users') 
     .then((response)=>{ 
      dispatch({type:'FETCH_GET_USER_SUCCES', payload:response.data}); 
      if (typeof callback === 'function') { 
       callback(null, response.data) 
      } 
     }) 
    } 
} 

reducerUser.js

export const getUserReducer = (state=[], action) =>{ 
    switch(action.type){ 
     case 'FETCH_GET_USER_REQUEST': 
      return state; 
     case 'FETCH_GET_USER_FAILURE': 
      return state; 
     case 'FETCH_GET_USER_SUCCES': 
      return [...action.payload.data]; 
     default: 
      return state; 
    } 
} 

container.jsx

class GetUserContainer extends Component{ 
    componentDidMount(){ 
     this.props.getUser(); 
    } 
    render(){ 
     return(
      <GetUserComponent allUser={this.props.allUser} /> 
     ) 
    } 
} 
function mapStateToProps(store){ 
     return{ 
      allUser:store.allUser 
     } 
} 
function matchDispatchToProps(dispatch){ 
    return bindActionCreators({ 
     getUser:getUser 
    }, dispatch) 
} 

store.js

const store = createStore(
reducers, 
    applyMiddleware(thunk, logger()) 
); 
+0

也許'返回[... action.payload]',而不是'返回[... action.payload.data]'? –

+0

@ಠ_ಠ是的,你有權利,謝謝 –

回答

2

看你的控制檯輸出你,你的問題是最有可能在你的減速時FETCH_GET_USER_SUCCES動作被擊中。

您返回此:[...action.payload.data];。嘗試記錄有效負載,有效負載上可能沒有數據對象,因此將undefined或null轉換爲對象錯誤。我打賭你只需要返回:[...action.payload];

0

從錯誤堆棧,你可以看到錯誤從getUserReducer在你的代碼中調用,然後在_toConsumableArray這是transpiling蔓延運營商ES5當巴貝爾創建一個輔助方法。

像@ಠ_ಠ表示暗示,你會得到錯誤,因爲action.payload.data不是一個對象,在這種情況下應用擴散運算符將失敗。 ([...action.payload.data]

相關問題