Open ralph-cheng opened 7 years ago
这些属性应该是required的,这个规则只会检查optional的属性有没有默认值
-- Gray Zhang
在 2017年5月25日 at 下午6:54:40, ralph-cheng (notifications@github.com) 写到:
当一个组件是react-redux connect来的,就会有若干来自store state的props,这些props的默认值是写在reducer function的参数列表里的,(甚至可能是根据若干store state值计算出来的)。
const error = (state = null, action) => { switch (action.type) { case 'Fail': return action.error; default: return state; } }
这时已经不适合在组件代码的defaultProps里再写一遍默认值,如果根据业务逻辑,用到该store state值的prop不是必需,就与这条规范准则冲突了。
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ecomfe/spec/issues/40, or mute the thread https://github.com/notifications/unsubscribe-auth/AAnCPfNQyXvE-05XcDAuK1j4huHa7PmUks5r9V3wgaJpZM4NmPm- .
现在有遇到业务上是optional但connect的情况吗,想看个例子
-- Gray Zhang
在 2017年5月25日 at 下午7:13:23, Gray Zhang (otakustay@gmail.com) 写到:
这些属性应该是required的,这个规则只会检查optional的属性有没有默认值
-- Gray Zhang
在 2017年5月25日 at 下午6:54:40, ralph-cheng (notifications@github.com) 写到:
当一个组件是react-redux connect来的,就会有若干来自store state的props,这些props的默认值是写在reducer function的参数列表里的,(甚至可能是根据若干store state值计算出来的)。
const error = (state = null, action) => { switch (action.type) { case 'Fail': return action.error; default: return state; } }
这时已经不适合在组件代码的defaultProps里再写一遍默认值,如果根据业务逻辑,用到该store state值的prop不是必需,就与这条规范准则冲突了。
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ecomfe/spec/issues/40, or mute the thread https://github.com/notifications/unsubscribe-auth/AAnCPfNQyXvE-05XcDAuK1j4huHa7PmUks5r9V3wgaJpZM4NmPm- .
你是说所有connect来的属性都要是required吗?要不然必然会与这条规则冲突,如果这样,既不符合组件本身逻辑,又会凭空多写很多isRequired
。
业务中的例子就是ajax请求的error message,对于页面组件本身而已,error没必要是required。Ajax请求是mapDispatchToProps里dispatch的async action,请求状态处理也是通过dispatch 相应action做的,这些状态(错误)自然会落到store里去。
我们等待一下这个Issue的官方回复再决定怎么做:https://github.com/yannickcr/eslint-plugin-react/issues/1224
参考那边的意见,我也觉得在container(s)
目录下放一个.fecsrc
文件比较合适
当一个组件是react-redux connect来的,就会有若干来自store state的props,这些props的默认值是写在reducer function的参数列表里的,(甚至可能是根据若干store state值计算出来的)。
这时已经不适合在组件代码的
defaultProps
里再写一遍默认值,如果根据业务逻辑,用到该store state值的prop不是必需,就与这条规范准则冲突了。