TypeError:无法解构“ productDetails”的属性“ product”,因为未定义

莫克特·艾哈迈德(Mokter Ahmed)

** ProductDetailsS​​creen.js >>>这是我的代码,我从Redux商店获得了产品列表,但是在初始化产品详细信息时遇到了问题。**

export default function ProductDetilsScreen(props) {
  const dispatch = useDispatch();
  const productId = props.match.params.id;
  const productDetails = useSelector((state) => state.productDetails);
  const { loading, error, product } = productDetails;

  useEffect(() => {
    dispatch(detailsProduct(productId));
  }, [dispatch, productId]);

** productActions.js >>这是我的代码,我从Redux商店获得了产品列表,但是在初始化产品详细信息时遇到了问题。**


export const detailsProduct = (productId) => async (dispatch) => {
  dispatch({
    type: PRODUCT_DETAILS_REUEST,
    payload: productId,
  });
  try {
    const { data } = await Axios.get(`/api/products/${productId}`);
    dispatch({
      type: PRODUCT_DETAILS_SUCCESS,
      payload: data,
    });
  } catch (error) {
    dispatch({
      type: PRODUCT_DETAILS_FAIL,
      payload:
        error.response && error.response.data.message
          ? error.response.data.message
          : error.message,
    });
  }
};

** productReducer.js >>>这是我的代码,我从Redux商店获得了产品列表,但是在初始化产品详细信息时遇到了问题。**

export const productDetailsReducer = (
  state = { product: {}, loading: true },
  action
) => {
  switch (action.type) {
    case PRODUCT_DETAILS_REUEST:
      return { loading: true };
    case PRODUCT_DETAILS_SUCCESS:
      return { loading: false, product: action.payload };
    case PRODUCT_DETAILS_FAIL:
      return { loading: false, error: action.payload };
    default:
      return state;
  }
};

** Store.js >>>这是我的代码,我从Redux商店获得了产品列表,但是在初始化产品详细信息时遇到了问题。**

import { applyMiddleware, combineReducers, compose, createStore } from "redux";
import thunk from "redux-thunk";
import { productDetailsReducer, productListReducer } from "./productReducers";

const initialState = {};

const reducer = combineReducers({
  productList: productListReducer,
  productDetils: productDetailsReducer,
});
const composeEnhancer = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(
  reducer,
  initialState,
  composeEnhancer(applyMiddleware(thunk))
);

export default store;
第98章

似乎这里有一个错字可能会引起问题。

// productDetils in Store.js file
const reducer = combineReducers({
  productList: productListReducer,
  productDetils: productDetailsReducer,
});

// productDetails in ProductDetailsScreen.js file
const productDetails = useSelector((state) => state.productDetails);
const { loading, error, product } = productDetails;

尝试纠正此粗心的错误。

除此之外,似乎没有什么异常。您的初始状态为productDetailsstate = { product: {}, loading: true }似乎是正确的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

×TypeError:无法解构“ Object(...)(...)”的属性“ xxx”,因为未定义

TypeError:无法解构“ req.body”的属性“ userId”,因为它未定义

TypeError:无法解构“ this.props”的属性“凭证”,因为它未定义

未处理的拒绝(TypeError):无法解构“ Object(...)(...)”的属性“ setUser”,因为未定义

TypeError:无法解构“ item”的属性“ name”,因为它未定义

TypeError:无法解构“panelMembersList”的属性“error”,因为它未定义

获取错误无法解构属性,因为它是未定义的

React js无法解构属性,因为它未定义

无法解构“未定义”的属性“历史”,因为它未定义。--React.js

运行测试时,TypeError: 无法解构属性 'travelDatas' of '(0 , _GetTravelDatas.getTravelDatas)(...)' 因为它是未定义的

TypeError:无法解构“ e.target”的属性“名称”,因为它未定义。在React Hooks中使用DatePicker

类组件抛出错误'TypeError:无法解构'this.State'的属性'timerTime',因为它是未定义的'

React CRUD 应用程序中的错误:TypeError:无法解构“this.props.event”的属性“id”,因为它未定义

设置状态返回返回未定义,无法解构属性“标题”的“未定义”,因为它未定义

无法解构“未定义”的属性“纬度”

电子JS-无法解构'require(...)。remote'的'BrowserWindow'属性,因为未定义

无法从上下文中解构对象的属性,因为它是未定义的

未捕获的类型错误:无法解构“道具”的属性“食谱”,因为它未定义

未捕获的类型错误:无法解构“useAuth(...)”的属性“xxx”,因为它未定义

MERN - 类型错误:无法解构“req.body”的属性“username”,因为它未定义

无法解构“(中间值)”的属性“数据”,因为它未定义

类型错误:无法解构“cart”的属性“cartItems”,因为它未定义

无法解构“ this.props.data”的属性“聊天”,因为它未定义

类型错误:无法解构“Object(...)(...)”的属性“toDos”,因为它未定义

类型错误:无法解构“订单”的属性“paymentInfo”,因为它未定义

无法解构“_ref”的属性“聊天”,因为它是未定义的(火力基地和反应)

NPM提供错误-TypeError:无法解构属性“ stat”的“未定义”或“空”

Node.js 抛出 TypeError:无法解构“req.body”的属性“firstName”,因为它未定义,即使它适用于其他发布请求

TypeError:无法解构“ object null”的属性“ handleShow”,因为它为null