小编ver*_*thS的帖子

我如何验证 yup 中对象内的对象?

我正在使用 formik 和 yup 来处理我的表单,我需要验证 formik 在初始值中设置的两个对象:

\n\n
initialValues: {\n  company: { company_name: \'\', cnpj: \'\', fantasy_name: \'\', state_registration: \'\' },\n  user: { email: \'\', password: \'\' }\n},\nvalidationSchema: schema,\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的验证模式:

\n\n
  const schema = Yup.object().shape({\n    company_name: Yup.string().required(\'Informe o nome da filial!\'),\n    cnpj: Yup.string().required(\'Informe o cnpj!\'),\n    email: Yup.string().email(\'Email n\xc3\xa3o possui formato v\xc3\xa1lido\').required(\'Informe o e-mail\'),\n    password: Yup.string().required(\'Informe a senha\')\n  })\n
Run Code Online (Sandbox Code Playgroud)\n\n

我如何才能再增加一个级别(用户/公司)?\n我尝试了类似的操作:

\n\n
company.company_name: Yup.string().required(\'Informe o nome da filial!\')\n
Run Code Online (Sandbox Code Playgroud)\n\n

但我收到:

\n\n
\n

解析错误:意外的标记,预期为“,”

\n
\n\n

我怎样才能做到这一点?

\n\n

我也尝试过:

\n\n
  const …
Run Code Online (Sandbox Code Playgroud)

reactjs yup formik

13
推荐指数
1
解决办法
2万
查看次数

当我在反应中重新排序表时,“孩子已经有一个父母,必须先将其删除”

我正在尝试在反应中指定一个材料反应表。

在我需要排序的列中,我放置了这个函数:

<TableCell onClick={() => sortBy('login')}>Email</TableCell>

const sortBy = (key) => {
    // If is using a field different by the last, starts ordering in asc
    if (key !== orderingField) {
        setOrderingStatus('asc')
        setOrderingField(key)
    // Reverte a ordenação
    } else { 
        if (orderingStatus === 'asc') {
            setOrderingStatus('desc')
        } else {
            setOrderingStatus('asc')
        }
    }
    let copyUsers = {}
    copyUsers.data = [...users] // make a copy of the obj
    copyUsers.lastPage = JSON.parse(JSON.stringify(lastPage)) // copy of the last page 
    copyUsers.data.sort(compareValues(orderingField, orderingStatus)) // make the …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

7
推荐指数
1
解决办法
520
查看次数

如何在formik中禁用提交时自动重置表单?

我有一个由 formik 控制的表单,当我填写所有字段并按下按钮提交时,该函数onSubmit被调用,并且我的表单已重置该值。

\n\n

有时我的数据不正确(例如重复的电子邮件),我需要保留这些数据。

\n\n

我怎样才能做到这一点?

\n\n

这是我的代码:

\n\n
    const schema = Yup.object().shape({\n        login: Yup.string()\n            .email(\'Email n\xc3\xa3o possui formato v\xc3\xa1lido\')\n            .required(\'Informe o email!\'),\n        password: Yup.string().required(\'Informe a senha!\'),\n    })\n\n    const formik = useFormik({\n        initialValues: {\n          login: \'\', password: \'\', inactive: false\n        },\n\n        validationSchema: schema,\n        onSubmit: values => {\n            registerUser(values)\n        }\n    })\n\nreturn (\n    <form onSubmit={formik.handleSubmit} className={classes.form} noValidate>\n        <Grid container spacing={3}>\n\n            <Grid item xs={12}>\n                <Typography className={classes.observation} component="h6">* Necess\xc3\xa1rio preenchimento do cadastro geral para liberar permiss\xc3\xa3o de telas</Typography>\n            </Grid>\n\n            <Grid item …
Run Code Online (Sandbox Code Playgroud)

reactjs formik

5
推荐指数
1
解决办法
2万
查看次数

如何在使用 adonis 的迁移过程中更改列类型而不会丢失数据库数据?

我有这门课:

class BookUnitQuestionSchema extends Schema {
  up () {
    this.create('book_unit_question', (table) => {
      table.increments()
      table.integer('book_unit_id').references('id').inTable('book_unit')
      table.string('correct_answer_description')
      table.boolean('status').defaultTo(false)
      table.integer('user_id').references('id').inTable('users')
      table.timestamps()
    })
  }

  down () {
    this.drop('book_unit_question')
  }
}
Run Code Online (Sandbox Code Playgroud)

我需要将列的数据类型更改correct_answer_descriptiontext. 如果我将实际up()方法更改为:

table.text('correct_answer_description')
Run Code Online (Sandbox Code Playgroud)

并做一个: adonis migration:refresh

所有表都重新创建,我丢失了该表中的数据。

我如何只更改数据类型而不会丢失数据?

我尝试类似:

this.alter('book_unit_question', (table) => {
  table.text('correct_answer_description')
})
Run Code Online (Sandbox Code Playgroud)

并做一个:

adonis migration:run
Run Code Online (Sandbox Code Playgroud)

但我得到:

没有什么可迁移的

node.js adonis.js

4
推荐指数
1
解决办法
4506
查看次数

如何删除 Material React Modal 中的蓝色边框?

我正在使用这个React Material Modal。在演示示例中,您可以看到当您打开模式时,有一个蓝色边框。

有办法去掉吗?

我在 Modal Api 中看到具有该属性disableAutoFocus,但我设置为“true”,并且我的模态仍然具有蓝色边框:

<Modal
        disableAutoFocus="true"
        aria-labelledby="transition-modal-title"
        aria-describedby="transition-modal-description"
        className={classes.modal}
        open={open}
        onClose={handleClose}
        closeAfterTransition
        BackdropComponent={Backdrop}
        BackdropProps={{
          timeout: 500,
        }}
      >
Run Code Online (Sandbox Code Playgroud)

我怎样才能删除这个?

javascript reactjs material-ui

3
推荐指数
1
解决办法
1518
查看次数

使用 adonis 迁移/nodejs 的表中的多个主键

我有这张表:

BookUnit
-------------------
id PK
unit PK
sequence PK
book_id FK
Run Code Online (Sandbox Code Playgroud)

所以,我可以记录数据:

id: 1
unit: 1
sequence: 1

id: 2
unit: 1
sequence: 2
Run Code Online (Sandbox Code Playgroud)

我不能有超过一个重复

id: 3
unit: 1
sequence: 2
Run Code Online (Sandbox Code Playgroud)

所以,我需要创建一个包含 id、序列和单位的组合主键。

我尝试这样:

class BookUnitSchema extends Schema {
  up () {
    this.create('book_unit', (table) => {
      table.increments()
      table.integer('book_id').references('id').inTable('books').notNullable()
      table.integer('unit').notNullable().primary()
      table.integer('sequence').notNullable().primary()
      table.string('description')
      table.integer('qt_question')
      table.boolean('status').defaultTo(false)
      table.integer('user_id').references('id').inTable('users')
      table.timestamps()
    })
  }

  down () {
    this.drop('book_unit')
  }
}
Run Code Online (Sandbox Code Playgroud)

但我得到:

错误:不允许表“book_unit”有多个主键

我在文档示例中没有找到具有多个主键的...

migration node.js adonis.js

2
推荐指数
1
解决办法
1997
查看次数

带 Like + '%' 的 Knex 查询不起作用

我有这个查询,必须选择通过描述过滤的所有书籍,忽略大写/小写。

所以我在 adonis.js / node.js 中进行此查询:

 const queryBook = Book
            .query()
            .with('user')
 queryBook.where('description', 'like', '%'+bookDescription[0]+'%')
Run Code Online (Sandbox Code Playgroud)

我有这样的记录bookDescription

“学生西班牙语版 1 版”

但是当我尝试仅使用小写的“es”进行过滤时,knex 不会返回任何记录。

当我输入“Es”时,将带有我输入的描述的书归还,因此,类似 %es% 不起作用。

我进行了一次调试,发现了这一点:

knex:query select * from "books" where "description" like ? limit ? undefined +7ms
knex:bindings [ '%es%', 10 ] undefined +6ms
Run Code Online (Sandbox Code Playgroud)

显然我没有发现任何错误,但我认为必须like以小写形式返回记录。

我忘记了什么?

node.js knex.js adonis.js

1
推荐指数
1
解决办法
7892
查看次数

当我尝试创建新用户时,意外的令牌用户=等待User.create(user)

我正在尝试使用node.js / adonis创建一个新用户

我创建了这两个功能:

const User = use("App/Models/User")

async store ({ request, auth }){

    let user = new User()
    user = request.all()

    this.userLogged(auth).then(res => { 
        user.user_id = res.id
        console.log(user)
        user = await User.create(user)
        const token = await auth.generate(user)
        Object.assign(user, token)
        return user
    })
}

async userLogged(auth) {
    try {
        return await auth.getUser()
    } catch (error) {
        console.log(error)
    }
}
Run Code Online (Sandbox Code Playgroud)

函数“ userLogged()”返回我在授权标头中收到令牌的用户。

所以我尝试:

create a new instance of User;
put the request data in this instance;
take the …
Run Code Online (Sandbox Code Playgroud)

node.js adonis.js

0
推荐指数
1
解决办法
59
查看次数