Babel.js 在React with conditionals中没有未使用的表达式

sf6xfgos  于 2022-12-08  发布在  Babel
关注(0)|答案(1)|浏览(170)

我有一个表单,需要首先验证一个常量,如果为真,打开模态,如果为假,提交表单。
我这样做了,这工作,但我得到的错误:
应为赋值或函数调用,但看到的却是表达式@babel/no-unused-expressions

modalOpen = () => this.setState({ showModal: true });

const validateType = !someAttribute && hasChange;

const submit = () => {
    validateType ? this.modalOpen() : handleSubmit();
};

// Do I need to have this submit here too?
<Form className={cn} onSubmit={isReadOnly ? () => {} : handleSubmit} readOnly={isReadOnly}>

    <Button
        type="button"
        onClick={submit}
    />
</Form>

错误发生在以下行中:

validateType ? this.modalOpen() : handleSubmit();

我看了文档,我真的不明白为什么会发生这种错误。
如果有人能帮我理解我将非常感激。

aij0ehis

aij0ehis1#

选项1 -将三元替换为if/else

const submit = () => {
  if(validateType) this.modalOpen(); 
  else handleSubmit();
};

选项2 -在您的.eslint文件中查找规则,并更改为允许三元表达式的规则:

no-unused-expressions: ["error", { "allowTernary": true }]

选项3 -忽略此行的eslint:

const submit = () => {
  // eslint-disable-next-line no-unused-expressions
  validateType ? this.modalOpen() : handleSubmit();
};

相关问题