技术:使用react,Redux,Redux Form(FieldsArray),MongoDB 我有一个实体列表,我想做以下事情:
我想创建一个实体 - >从服务器返回一个带有_id的实体 - >使用then实体和_id更新商店。
我该怎么做?
actions.js
export function createEntity(entity) {
return function (dispatch) {
dispatch(createEntityStart());
return axios.post(
'http://localhost:3000/api/users',
entity,
)
.then(function (response) {
dispatch(createEntitySuccess(response.entityWithId));
}).catch(function (response) {
dispatch(createEntityError(response.data));
});
};
}
我已经完成了fields.push({}) - 在组件中有了一个新实体。
现在我想发布跟随返回实体(带有id)的新实体。
我现在需要在商店的某个地方用Id保存实体
该怎么做?
我进了商店:
答案 0 :(得分:0)
如果您希望将其存储在redux-form的状态,可以使用几个选项。你可以看一下使用redux-form的Action Creators来操纵它的状态。或者你可以在它的表单缩减器中添加一个插件(这是一个超级简化的例子):
const reducers = {
form: formReducer.plugin({
entityForm: (state, action) => {
switch(action.type) {
case CREATE_ENTITY:
return {
...state,
values: {
action.payload
},
registeredFields: {
...state.registeredFields,
}
}
default:
return state
}
}
})
}
您可以在http://redux-form.com/7.0.3/docs/api/ReducerPlugin.md/
找到有关redux-form插件的更多详细信息另一个选项,如果你不想以redux-form的状态保存它,就是在redux中创建你自己的状态对象来存储实体信息。