Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从redux存储中获取的数据没有';不显示在组件中_Javascript_Node.js_Reactjs_Redux_React Redux - Fatal编程技术网

Javascript 从redux存储中获取的数据没有';不显示在组件中

Javascript 从redux存储中获取的数据没有';不显示在组件中,javascript,node.js,reactjs,redux,react-redux,Javascript,Node.js,Reactjs,Redux,React Redux,我一直在用Django后端和react前端使用react API创建todo应用程序。操作已成功调度,数据已成功获取,但在RenderTodo组件中,数据尚未出现。以下是附件。 当然,我只是少了一件小东西,但却找不到! 我对这件事有些陌生,需要帮助。 它是否类似于在TodoComponent.js中声明空状态? 最后,我还在浏览器中附加了渲染表单 连同下面的数据,我现在已经把它放在GitHub上了 目录结构是 文件: configureStore.js 从'redux'导入{createSto

我一直在用Django后端和react前端使用react API创建todo应用程序。操作已成功调度,数据已成功获取,但在
RenderTodo
组件中,数据尚未出现。以下是附件。 当然,我只是少了一件小东西,但却找不到! 我对这件事有些陌生,需要帮助。 它是否类似于在
TodoComponent.js
中声明空状态? 最后,我还在浏览器中附加了渲染表单

连同下面的数据,我现在已经把它放在GitHub上了

目录结构是

文件:
configureStore.js

从'redux'导入{createStore,combinereducer,applyMiddleware};
从“redux thunk”导入thunk;
从'redux devtools extension'导入{composeWithDevTools};
从“redux记录器”导入记录器;
从“./reducers/todo”导入{Todos};
导出常量配置存储=()=>{
const store=createStore(
组合传感器({
待办事项:待办事项,
}),
带有开发工具的组件(applyMiddleware(thunk,logger))
);
退货店;
}
ActionCreators.js

import*作为“/ActionTypes”中的ActionTypes;
从“/baseUrl”导入{baseUrl};
从“axios”导入axios;
//抓紧时间
导出常量gettoos=()=>(分派)=>{
axios
.get('api/todo/'))
。然后(res=>{
派遣({
类型:ActionTypes.GET_TODOS,
有效载荷:res.data
});
}).catch(err=>console.log(err));
}
todo.js

import*作为“../ActionTypes”中的ActionTypes;
导出常量初始状态={
待办事项:[]
}
导出常量Todos=(状态=初始状态,操作)=>{
开关(动作类型){
case ActionTypes.GET_TODOS:
返回{
……国家,
todos:action.payload
};
违约:
返回状态;
}
};
App.js

import React,{Component,Fragment}来自“React”;
//用于为所有子组件提供存储
从“react redux”导入{Provider};
从“/components/TodoComponent”导入Todo;
从“/redux/ConfigureStore”导入{ConfigureStore}”;
const store=ConfigureStore();
导出类应用程序扩展组件{
render(){
返回(
);
}
}
导出默认应用程序;
TodoComponent.js

import React,{Component}来自“React”;
从“react redux”导入{connect};
从“./redux/ActionCreators”导入{gettoos};
从“/RenderToComponent”导入RenderTodo;
常量mapStateToProps=(状态)=>({
待办事项:state.todos.todos,
});
const mapDispatchToProps=(调度)=>({
getTodos:()=>{
调度(gettoos());
},
});
类Todo扩展组件{
componentDidMount(){
this.props.gettoos();
}
render(){
返回(
待办事项
);
}
}
导出默认连接(mapStateToProps、mapDispatchToProps)(Todo);
RenderComponent.js

从“React”导入React;
导出默认函数RenderTodo(道具){
返回(
{console.log(“第二个组件”)}
身份证件
正文
完整的
创建于
{props.todo.map((todo)=>{
{todo.id}
{todo.text}
{todo.created_at}
{todo.completed}
删除
;
})}
);
}
浏览器
控制台打印第二个组件是一个调试语句,显示第二个组件的呈现,然后调用第一个组件的componentDidMount。

编辑:添加了redux开发工具-图像
我附加了动作、状态和差异,希望这有助于排除故障。这里一切似乎都很好


您没有返回
props.todos.map

{
}
替换为
,以返回JSX

{props.todos.map((todo)=>(//这以前是一个{
{todo.id}
{todo.text}
{todo.created_at}
{todo.completed}
删除
))}

您不能返回
props.todos.map

{
}
替换为
,以返回JSX

{props.todos.map((todo)=>(//这以前是一个{
{todo.id}
{todo.text}
{todo.created_at}
{todo.completed}
删除
))}

你从哪里调用RenderTodo?据我所知,你导出了RenderTodo,但没有从任何地方导入RenderComponent.js?我在任何地方都没有看到mapStateToProp或useSelector,只有同一个减速机发布了3次。你是否检查了redux开发工具,是否注意到todos ar