我有一个函数,它获取val
作为参数,我想将this.props.val
设置为默认值。
我当前的职能:
foo(val = this.props.val) {
this.bar(val);
}
我将得到以下lint错误:
必须使用毁灭道具分配(反应/毁灭-分配)
是否有可能以不同的方式将道具作为默认值,以支持react/destructuring-assignment
规则?
也许有类似以下的诀窍?
foo({ val } = this.props) {
this.bar(val);
}
[我可以用
foo(val) {
const { val: valProps } = this.props;
const newVal = val || valProps;
this.bar(newVal);
}
但我想找一个更干净的方法]
你是说类似这个的东西?
const foo = ({ val = 'MY_DEFAULT_VALUE' } = this.props) => {
console.log(val);
}
foo({ val: 'x' }) // Prints 'x'
foo({}) // Prints 'MY_DEFAULT_VALUE'
您将得到一个lint错误,这并不是一个确切的错误,因为它与运行时无关,而只是与代码风格相关的一个固执己见的最佳实践。 对于JavaScript,您的代码似乎还不错。 您可以做的是,通过将此注释置于您的函数之上来忽略此特定行的规则,//eslint-disable-line react/destructing-assignment
或者在完全取决于您的代码风格的eslint配置中完全禁用此规则。