У меня странная ошибка пару часов, и я действительно не могу понять, что это такое. Приложение работало нормально, а затем после того, как я изменил название заголовка страницы, я получил эту ошибку.
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)
С тех пор я пытался как-то исправить, даже чтобы репо со вчерашнего дня получилось, но то же самое, не меняя всего. Это что-то с пакетом 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
@NagaSaiA, пожалуйста, посмотрите мою правку
Можете ли вы показать код, который запускает todo._id, где выдается ошибка?
@ RoryO'Kane Я только что обновил свой пост со строками, выкидывающими ошибку
Можете ли вы попробовать консоль todo внутри .map, просто чтобы убедиться, что todo и todo._id доступны
Я не могу консольный журнал, потому что приложение останавливается сразу после его сборки
Ошибка говорит сама за себя. Каким-то образом в выражении todo._idtodo равен нулю. Поскольку todo происходит от элемента в this.props.todos, это должно означать, что массив содержит значения, для которых задано значение null. Вы захотите отладить, каково значение этой опоры и что передает ее таким образом.
@Jacob, поэтому я поместил <TodoItem key = {'todo._id'} text = {'todo.text'} id = {'todo._id'}/> и журнал консоли this.props.todos и вернул массив с несколькими элементами, которые я создал ранее
Вы уверены, что значения все в массиве не равны нулю? Ошибка определенно говорит о том, что по крайней мере в одной итерации цикла для todo установлено значение null.
@Jacob Все значения имеют разные идентификаторы



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


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