我想根据从Home.js获得的现有道具在reducer.js中设置初始状态
我试图调用home: this.props.homedata
来设置初始状态,但是它不起作用。
import { COMMENT_SHOW, LIKE_SHOW, HOMEDATA_SHOW } from '../actions/types';
const INITIAL_STATE = {
wallid: '',
comment: '',
like: '',
home: this.props.homedata
};
export default (state = INITIAL_STATE, action) => {
........///////////
}
Reducer.js
应用加载后,我希望在家中获得与homedata
状态相同的数据
答案 0 :(得分:0)
我认为不可能将prop传递给减速器。您可以做的是拥有一个数据集文件,例如Car.update({"active": true}, {"$set":{"active": false}}, {"multi": true} )
Car.update({ _id: { $in: carlist } },{ $set: { active : true } })
,然后导出数据。将其导入到reducer文件中,并将其设置为初始数据。
data.js
如果您不希望在应用程序运行时修改示例数据。也许您需要它来重置家庭数据,您需要先克隆数据,然后再将其传递到初始状态。
答案 1 :(得分:0)
减速器没有props
。您可能是从React捡起的。
Reducer应该根据调度的操作来更新Redux状态。要将状态更新为homedata
,您可以分派操作并将reducer中的数据作为新状态返回。
// action to dispatch
{
type: "UPDATE_HOME",
payload: homedata
}
// Reducer.js
const INITIAL_STATE = {
wallid: '',
comment: '',
like: '',
home: {}
};
export default (state = INITIAL_STATE, action) => {
switch(action.type) {
case "UPDATE_HOME":
return {
...state,
home: action.payload
};
default:
return state;
}
}