Javascript 从redux存储中获取的数据没有';不显示在组件中
我一直在用Django后端和react前端使用react API创建todo应用程序。操作已成功调度,数据已成功获取,但在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
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