通过DevTools返回的axios数据形式是什么?

问题描述

我正在学习Hooks,React Context和其他内容,但是我觉得我不了解DevTools是如何工作的。我的axios调用返回一些更新状态的数据。我可以看到状态更改,并且console.log会显示信息。

这是胡克斯下的状态:

enter image description here

这是console.log(todos)吐出的内容

enter image description here

这是控制台日志的展开外观:

enter image description here

enter image description here

enter image description here

我不知道待办事项在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;