#javascript #reactjs #react-native
Вопрос:
У меня проблема с картой, я не понимаю, почему она выдает мне ошибку не удается прочитать свойства null, элементы, которые находятся в массиве, также не содержат нулей, поэтому я не понимаю, почему эта ошибка возникает у меня.
state = {
tableHead: [
'', 'Lunedi', 'Martedi', 'Mercoledi'
],
tableData: {
value: [
[{ name: 'David', event1: { test: 'prova', test1: 'prova2' }}],
[{ name: 'Lorenz', event1: { test: ['2', 'test'] }, event2: '3', event3: '4' }],
[{ name: 'Victor', event1: { test: ['2', 'test'] }, event2: '3', event3: '4' }],
[{ name: 'Franklyn', event1: { test: ['2', 'test'] }, event2: '3', event3: '4' }],
],
},
это мой компонент Рендеринга:
<Стиль границы таблицы={{ Цвет границы: ‘прозрачный’ }}>
<Row data={this.state.tableHead} style={styles.head} textStyle={styles.text} />
{
this.state.tableData.value.map((rowData, index) => {
console.log('test', rowData),
<TableWrapper key={index} style={styles.row}>
{
rowData.map((item, index) => {
console.log('item', item.name),
<Text textStyle={styles.text}>{item.name} </Text>
})
}
</TableWrapper>
})
}
</Table>
Ответ №1:
Это просто, просто добавьте ? перед картой. Пример :
this.state.tableData?.value?.map [your code]
rowData?.map [your code]
Комментарии:
1. Подумайте о том, чтобы объяснить, что такое
?
оператор и как он решает проблему OPs
Ответ №2:
УиллМоунт
state = undefined;
ДидМоунт:
state = <your data>;
Ваша функция рендеринга запускается до того, как состояние имеет значение
Решение таково: сначала вы должны проверить данные
this.state.tableData?.value?.map
rowData?.map
Проверьте это: Необязательная цепочка