我将以下数据发送到我的reducer:
const data = {
value: { age, gender, ethnicity },
field: 'accessCode',
actionType: 'ADD_DETAILS',
};
this.props.dispatch(formHandler(data));
如何查看值prop是单个值还是具有三个值的对象?
我的行动:
export function formHandler(data) {
return function(dispatch) {
// check data.value is an object with three value
if (..) {
this.props.dispatch(
showError({
type: 'SHOW_MODAL',
modalType: 'SHOW_ERROR',
})
);
} else {
dispatch({
type: data.actionType,
field: data.field,
value: data.value,
});
}
};
}
我的reducer更新状态:
switch (action.type) {
case ADD_LANGUAGE:
case ADD_ACCESSCODE:
case ADD_ACCESSCODE:
case ADD_DRINKS_CONCERN:
return {
...state,
[action.field]: action.value,
};
case ADD_DETAILS:
return {
...state,
...action.value,
};
答案 0 :(得分:2)
关于如何检查的评论,这可能是一个开始。
if (typeof(data.value) === 'object' && Object.keys(data.value).length === 3)
我不确定您的需求有多具体(例如它是否需要正好3个键),但随意扩展我可以插入。
答案 1 :(得分:0)
如果您可以使用Object原型,可以使用以下方法进行测试:
Object.getOwnPropertyNames(data).length
Object.getOwnPropertyNames返回一个数组,其中包含所有属性值,其长度属性包含在其中。