Очевидно, что вы не знаете о JavaScript объектах и дочерних вызовах. когда вы вызываете потомка, но его родитель не существует, вы определенно получаете ошибку также в компоненте Text
React Native, вам следует передать хотя бы пустую строку.
Вы должны разработать цепочечный вызов детей защищаясь. для этого я предлагаю вам прочитать о необязательной цепочке и добавить ее в свой проект, используя эту ссылку .
. После установки вы можете написать функцию _renderItem
как показано ниже:
_renderItem = item => (
<View style={{ flex: 1 }}>
<Text>{item}</Text>
<Text>{GLOBAL?.products[item]?.title || ''}</Text>
</View >
);
Или есть лучший способ использовать lodash.get
, установив его с yarn add lodash.get
или npm install --save lodash.get
, а затем использовать его, как показано ниже:
import get from 'lodash.get';
~~~
_renderItem = item => (
<View style={{ flex: 1 }}>
<Text>{item}</Text>
<Text>{get(GLOBAL, ['products', 'item', 'title'], '')}</Text>
</View >
);
Я предпочитаю второй. это защитное программирование предотвращает сбой вашего приложения.