Ошибка при сокращении внезапно

У меня странная ошибка пару часов, и я действительно не могу понять, что это такое. Приложение работало нормально, а затем после того, как я изменил название заголовка страницы, я получил эту ошибку.

TypeError: null не является объектом (оценка todo._id)

Эта ошибка находится по адресу:

in TodoList (created by Connect(TodoList))
in Connect(TodoList) (at NavigatorIOS.ios.js:862)
in RCTNavItem (at NavigatorIOS.ios.js:854)
in StaticContainer (at NavigatorIOS.ios.js:853)
in RCTNavigator (at NavigatorIOS.ios.js:52)
in NavigatorTransitionerIOS (at NavigatorIOS.ios.js:882)
in StaticContainer (at NavigatorIOS.ios.js:881)
in RCTView (at View.js:78)
in View (at NavigatorIOS.ios.js:917)
in NavigatorIOS (at Main.js:26)
in Main (at App.js:25)
in RCTView (at View.js:78)
in View (at App.js:34)
in App (created by Connect(App))
in Connect(App) (at App.js:12)
in Provider (at App.js:11)
in todoListAuth (at registerRootComponent.js:35)
in RootErrorBoundary (at registerRootComponent.js:34)
in ExpoRootComponent (at renderApplication.js:35)
in RCTView (at View.js:78)
in View (at AppContainer.js:102)
in RCTView (at View.js:78)
in View (at AppContainer.js:122)
in AppContainer (at renderApplication.js:34)
  • app / components / TodoList.js: 74: 30 дюймов
  • app / components / TodoList.js: 72: 34 в renderTodos
  • app / components / TodoList.js: 99: 11 в TodoList_render
  • node_modules / react-native / Libraries / Renderer / ReactNativeRenderer-dev.js: 8707: 21 в finishClassComponent
  • node_modules / react-native / Libraries / Renderer / ReactNativeRenderer-dev.js: 11771: 25 в performUnitOfWork
  • ... еще 22 кадра стека из внутреннего устройства фреймворка

С тех пор я пытался как-то исправить, даже чтобы репо со вчерашнего дня получилось, но то же самое, не меняя всего. Это что-то с пакетом redux?

Спасибо

РЕДАКТИРОВАТЬ

Код, который я изменил

<View style = {styles.container}>
    <View style = {styles.topBar}>
      <TouchableOpacity onPress = {this.onBack}>
        <Icon name = "chevron-left" size = {20} color = "white"/>
      </TouchableOpacity>
      <Text style = {styles.title}>
        New To-Do // This is the text I've changed
      </Text>
      <TouchableOpacity onPress = {this.addNewTodo}>
        <Icon name = "check" size = {20} color = "white"/>
      </TouchableOpacity>
    </View>

Линии ошибок

var renderTodos = () => {
  return this.props.todos.map((todo) => { // Line 72
    return (
      <TodoItem key = {todo._id} text = {todo.text} id = {todo._id}/> // Line 74
    )
  })
}
{renderTodos()} // Line 99

Можете ли вы поделиться фрагментом кода, что вы изменили, либо todo имеет значение null, либо _id имеет значение null, что вызывает эту ошибку

Naga Sai A 20.04.2018 23:53

@NagaSaiA, пожалуйста, посмотрите мою правку

Markus Hayner 20.04.2018 23:57

Можете ли вы показать код, который запускает todo._id, где выдается ошибка?

Rory O'Kane 20.04.2018 23:58

@ RoryO'Kane Я только что обновил свой пост со строками, выкидывающими ошибку

Markus Hayner 21.04.2018 00:03

Можете ли вы попробовать консоль todo внутри .map, просто чтобы убедиться, что todo и todo._id доступны

Naga Sai A 21.04.2018 00:09

Я не могу консольный журнал, потому что приложение останавливается сразу после его сборки

Markus Hayner 21.04.2018 00:12

Ошибка говорит сама за себя. Каким-то образом в выражении todo._idtodo равен нулю. Поскольку todo происходит от элемента в this.props.todos, это должно означать, что массив содержит значения, для которых задано значение null. Вы захотите отладить, каково значение этой опоры и что передает ее таким образом.

Jacob 21.04.2018 00:17

@Jacob, поэтому я поместил <TodoItem key = {'todo._id'} text = {'todo.text'} id = {'todo._id'}/> и журнал консоли this.props.todos и вернул массив с несколькими элементами, которые я создал ранее

Markus Hayner 21.04.2018 00:50

Вы уверены, что значения все в массиве не равны нулю? Ошибка определенно говорит о том, что по крайней мере в одной итерации цикла для todo установлено значение null.

Jacob 21.04.2018 01:33

@Jacob Все значения имеют разные идентификаторы

Markus Hayner 21.04.2018 01:50
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
10
46
0

Другие вопросы по теме