每个方法都要有注释
/** * 获取所有待办事项 * @param {String} [params.name] 待办事项的名称 * @param {String} [params.comment] 待办事项的 描述/备注 * @param {Number} [params.status] 待办事项的 状态 0 -> 待办, 1 -> 完成, 2 -> 取消 */ export async function todoQueryAll(params){ return request('/api/v1/todos',{ method: 'GET', query: params, }) }
export default { namespace: 'todo', state : { todos: [], currentStatus: 0, }, effects: { // 获取所有的待办事项 *fetchAll({payload},{call,put}){ const res = getResponse(yield call(todoQueryAll, payload)); if(!isEmpty(res)){ yield put({ type: 'updateState', payload: { todos: res, }, }); } }, }, reducers: { updateState(state,{payload}){ return Object.assign( {}, state, payload, ); }, }, }
@connect(({todo,loading})=>({todo,loading})) export default class Todo extends React.PureComponent{ /** * 渲染待办事项页面 */ render(){ const { todo: {todos = [],currentStatus} } = this.props; return ( map(todos,(todo)=>{ if(isNumber(currentStatus)){ return todo.status === currentStatus ? <TodoComponent todo={todo} /> : false }else{ return <TodoComponent todo={todo} /> } }); ); } }
export default class TodoComponent extends React.PureComponent{ statusMap = { 0: '待办', 1: '已完成', 2: '取消', }; render(){ const { todo: {name,comment,status} = {} } = this.props; const { statusMap } = this; return ( <div> { name } - {comment}<br /> { statusMap[status] || '未知状态' } <br /> </div> ); } }