无法读取 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 )或者可能只是一个空对象。因此,有两种方法可以解决此问题
-
通过设置默认值来保护您的
newOrderList
const newOrderList = useSelector((state) => state.newOrderList);
const { newOrder = {} } = newOrderList || {};
const numberOfDisplay = newOrder?.order_number_of_display || 0
-
在存储中为您的 Reducer 中的状态
newOrderList
设置初始值
Shyam
2021-06-04