【发布时间】:2018-04-12 02:51:59
【问题描述】:
使用带有 Redux 状态的基于 React 的应用程序,我有一个组件应该在加载时从后端加载数据列表。
我已经加载了组件,并映射了状态和操作。我在这里有组件的主要数据调用:
componentWillMount(){
this.props.loadTasks(this.props.user);
}
在此处触发动作函数:
export const loadTaskList = (user) => {
return (dispatch) => {
fetch(`http://localhost:3201/tasks/${user._id}`)
.then(res => res.json())
.then(tasks => {
console.dir(tasks);
return({type: LOAD_TASKS, payload: tasks});
});
}
}
它被发送到reducer,并像这样合并到商店中:
export default (state=initState, {type, payload}) => {
switch (type) {
case LOAD_TASKS:
console.log(`Payload of tasks: ${payload}`);
return{...state, tasks: payload};
default:
return state;
}
}
问题是为什么这没有进入我的状态,因此没有进入我的组件?
编辑:为了清楚起见,我的 mapState 和 mapActions 对象:
let mapState = (state) => ({
tasks: state.tasklist,
user: state.user
});
let mapActions = (dispatch) => ({
loadTasks: loadTaskList, //taskList Reducer
selectTask: selectTask, //ActiveTask Reducer
deleteTask: deleteTask, //TaskList Reducer
newTask: newTask //activeTask Reducer
});
【问题讨论】:
-
我认为您需要将任务分配给组件中的某些内容。目前看起来您的
this.props.loadTasks没有对生成的有效负载做任何事情,因此它不会修改组件的状态/道具。 -
store中的tasks对象连接到mapstate()中的组件
标签: reactjs redux react-redux