亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

reviews.reviewList.data 在 reactjs 中未定義,即使有數據

reviews.reviewList.data 在 reactjs 中未定義,即使有數據

慕容708150 2022-06-05 16:18:57
我收到了來自 backed 的回復,看起來像這樣。但是當我嘗試像這樣記錄數據時。render() {    const { reviews } = this.props;    console.log('rev', reviews.reviewList.data._embedded);它給了我這樣的錯誤。類型錯誤:reviews.reviewList.data 未定義reviewDataReducer.jsxconst initialstate = {  isFetching: false,  reviewList: [],  page: null,  fetched: false,  error: null};export default (state = initialstate, action) => {  switch (action.type) {    case actionTypes.GET_PRODUCT_REVIEWS_LOAD:      return {        ...state,        isFetching: true      };    case actionTypes.GET_PRODUCT_REVIEWS_SUCCESS:      return {        ...state,        fetched: true,        reviewList: action.payload      };    case actionTypes.GET_PRODUCT_REVIEWS_ERROR:      return {        ...state,        fetched: false,        isFetching: false,        error: action.error      };    default:      return state;  }};reviewActions.jsxexport const getProductReviews = pid => dispatch => {    console.log('rev pid',pid)  dispatch({    type: types.GET_PRODUCT_REVIEWS_LOAD  });  new _rest()    .get(`/buyer/product/${pid}/review`)    .then(res => {      console.log("Review Action Response", res);      dispatch({        type: types.GET_PRODUCT_REVIEWS_SUCCESS,        payload: res      });    })    .catch(error => {      dispatch({        type: types.GET_PRODUCT_REVIEWS_ERROR,        error: error      });    });};連接const mapStateToprops = state => ({  reviews: state.reviews.data});const mapStateToDispatch = {  getProductReviews};export default connect(  mapStateToprops,  mapStateToDispatch)(ReviewContainer);
查看完整描述

2 回答

?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

您的信息有限,但我會盡力做到最好。

1] 錯誤是因為您遍歷對象錯誤,而不是因為在這種情況下數據不存在。2] 渲染() { 常量 { 評論 } = this.props;

在這里,我覺得你使用 (mapStateToProps) 將 redux 狀態映射到 prop,如果這樣的話,reducer 負責你如何在 redux 狀態下設置數據。


查看完整回答
反對 回復 2022-06-05
?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

問題存在于 mapStateToprops 連接內部。嘗試在那里調試它。


 const mapStateToprops = state => {

  debugger;

  return ({

    reviews: state.reviews.data

  });

};

打開瀏覽器控制臺并檢查 state 的值;


查看完整回答
反對 回復 2022-06-05
  • 2 回答
  • 0 關注
  • 125 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號