是否有最佳实践/推荐的方法来断言redux操作的格式良好?我是一个相当幼稚的JavaScript程序员(来自于20年的C++/Java/C#),但由于缺乏强大的打字能力而被抛诸脑后。
具体来说,我试图解决的用例是:
1.使用React + Redux "ToDo“应用程序(http://redux.js.org/docs/basics/ExampleTodoList.html)
2.使用行动创建者:
export function toggleTodo(index) {
return { type: TOGGLE_TODO, index }
}3.使用还原器代码片段:
case TOGGLE_TODO:
if (state.id !== action.id) {
return state
}注意,索引和id不匹配。不过,他们应该这么做的--那是个虫子。这花了我30分钟来诊断,我只能想象更大的应用程序。
发布于 2016-11-30 07:26:17
您是否考虑过创建一个表示Action类型的类,然后让它处理验证,如下所示.
class ToggleAction {
constructor(o) {
if (
typeof o === 'object' &&
typeof o.type === 'string' &&
typeof o.id === 'number'
) {
this.type = "TOGGLE_TODO";
this.id = o.id
} else {
throw new Error('Invalid ToggleAction');
}
}
toObject() {
return { type: this.type, id: this.id };
}
}然后你就可以把它用在动作创作者身上.
export function toggleTodo(index) {
return new ToggleAction({ id: index }).toObject();
}在减速机里这样..。
case TOGGLE_TODO:
const toggleAction = new ToggleAction(action)
if (state.id !== toggleAction.id) {
return state
}如果所有这些都成功的话,您可以创建一个生成ActionFactory类的ActionType。
编辑:我创建了一个名为redux-action-validator的npm模块,自述了如何安装和使用它。
https://stackoverflow.com/questions/40882204
复制相似问题