首页 > 解决方案 > 功能道具是否需要“noop”[lodash] 默认参数?

问题描述

我想知道人们在使用 React 中的可选默认函数时会提出什么建议。

我已经看到我们的代码库混合使用 () => {} 和 lodash noop。

哪个更可取?

这是关于正确编码技术的一般问题。

export default ({
  name = '',
  value = '',
  label = name,
  type = 'text',
  noLabel = false,
  placeholder = '',
  required = false,
  isInvalid = false,
  showBar = true,
  inputRef,
  onChange = () => {},
  onBlurCb, // <-- THE BIT IN QUESTION
  ...props
}) => (
  <Component initialState={{ isFocused: false, hasValue: false }}>
    {({ state, setState }) => (
      <InputContainer
        isFocused={state.isFocused}
        isInvalid={isInvalid}
        noLabel={noLabel}
        {...props}
      >
...

这被用作稍后在组件中的合成事件的回调

onBlur={() => {
            setState({ isFocused: false })
            onBlurCb()
          }}

标签: javascriptreactjslodashnoop

解决方案


这是源代码_.noop()

function noop() {
  // No operation performed.
}

如您所见,它与() => {}.

主要缺点_.noop()是需要导入它(另一行代码)。

除此之外,您应该在您的团队中使用约定,或者如果没有,则使用对您来说更具可读性的约定。

作为个人喜好,我会跳过导入,并使用() => {}.


推荐阅读