我正在使用 formik 和 yup 来处理我的表单,我需要验证 formik 在初始值中设置的两个对象:
\n\ninitialValues: {\n company: { company_name: \'\', cnpj: \'\', fantasy_name: \'\', state_registration: \'\' },\n user: { email: \'\', password: \'\' }\n},\nvalidationSchema: schema,\nRun 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 })\nRun Code Online (Sandbox Code Playgroud)\n\n我如何才能再增加一个级别(用户/公司)?\n我尝试了类似的操作:
\n\ncompany.company_name: Yup.string().required(\'Informe o nome da filial!\')\nRun Code Online (Sandbox Code Playgroud)\n\n但我收到:
\n\n\n\n\n解析错误:意外的标记,预期为“,”
\n
我怎样才能做到这一点?
\n\n我也尝试过:
\n\n const …Run Code Online (Sandbox Code Playgroud) 我正在尝试在反应中指定一个材料反应表。
在我需要排序的列中,我放置了这个函数:
<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) 我有一个由 formik 控制的表单,当我填写所有字段并按下按钮提交时,该函数onSubmit被调用,并且我的表单已重置该值。
有时我的数据不正确(例如重复的电子邮件),我需要保留这些数据。
\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) 我有这门课:
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_description为text. 如果我将实际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)
但我得到:
没有什么可迁移的
我正在使用这个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)
我怎样才能删除这个?
我有这张表:
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)
但我不能有超过一个重复:
Run Code Online (Sandbox Code Playgroud)id: 3 unit: 1 sequence: 2
所以,我需要创建一个包含 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”有多个主键
我在文档示例中没有找到具有多个主键的...
我有这个查询,必须选择通过描述过滤的所有书籍,忽略大写/小写。
所以我在 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 / 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) adonis.js ×4
node.js ×4
reactjs ×4
formik ×2
javascript ×2
knex.js ×1
material-ui ×1
migration ×1
yup ×1