开发者问题收集

无法读取 Redux 对象的属性

2021-06-04
41

我想我有一个非常基本的问题。所以在我的索引页上,我有一个输入字段,我取数字。根据这个数字,我在下一页显示我的组件。我将它们存储在 Redux 中。例如,如果用户输入 3,则在下一页上我会显示 3 次组件。一切都很好,我成功获取了列表,其中显示了显示的数量。但第一次,我得到了 无法读取未定义的属性“order_number_of_display” ,这意味着如果再次呈现页面,一切都正常。

无论如何,这里是我获取显示数量的方法:

const newOrderList = useSelector((state) => state.newOrderList);
  const { newOrder } = newOrderList;
  const numberOfDisplay = newOrder.order_number_of_display;

第一次,它在我的控制台上未定义,但在 Redux 存储中,它实际上已实现。您能提示我如何修复它吗?

另外,这是我的显示方式:

{
        Array.from({ length: numberOfDisplay }, (v, i) => ( 
<Component/>
)
}

在此处输入图片描述

1个回答

您的 newOrderList 可能不是对象(可能为 null )或者可能只是一个空对象。因此,有两种方法可以解决此问题

  1. 通过设置默认值来保护您的 newOrderList
    const newOrderList = useSelector((state) => state.newOrderList);
    const { newOrder = {} } = newOrderList || {};
    const numberOfDisplay = newOrder?.order_number_of_display || 0
  1. 在存储中为您的 Reducer 中的状态 newOrderList 设置初始值
Shyam
2021-06-04