问题描述
我正在学习Hooks,React Context和其他内容,但是我觉得我不了解DevTools是如何工作的。我的axios调用返回一些更新状态的数据。我可以看到状态更改,并且console.log会显示信息。
这是胡克斯下的状态:
我不知道待办事项在DevTools下是{[{_id,title,userId}]}
还是[{_id,userId}]
的形式。
我认为是后者,并尝试通过console.log(todos[0])
,console.log(todos[0]['title'])
等进行访问,但是那些返回undefined
却没有console.log(todos)
的访问。是这样吗?
解决方法
如果console.log(todos)
记录了该对象{todos:[...]}
,则表示 todos对象包含包含数组的 todos属性。这可能会让您感到困惑,因为您需要再次选择todos
:
console.log(todos.todos)
(完整的选择器将是console.log(todos.todos[0]['title'])
)
我的猜测是,您已经通过var todos = state;
将完整的Redux状态保存到了代码中的todos变量中。
我建议您将状态另存为另一个变量名,以免造成混淆:
var reduxState = state;
...或仅保存待办事项状态:
var reduxTodosState = state.todos;