小编Ste*_*ven的帖子

渲染后如何在formik中触发验证?

我有一个关于 formik 的问题。基本上,我将有一个表格,其中列出了有错误的表单的所有 Id。当用户单击表单的 Id 时,它将显示表单本身。要求是在呈现表单时也应该显示错误。有谁知道如何用 Formik 做到这一点?此外,如果用户编辑该字段,则字段验证应正常工作。

我把代码和盒子链接放在这里。https://codesandbox.io/s/pensive-brattain-yyls2。基本上我希望当表单出现时我应该看到错误,而不仅仅是当用户离开该字段或更改它时。谢谢你。

import { Formik, Field, Form } from "formik";
import { TextField } from "formik-material-ui";

class Post0 extends React.Component {
   validateEmptyName(value) {
      if (!value) {
        return "Invalid Name";
      }
   }

 render() {
  return (
  <div>
    <Formik
      initialValues={{
        email: "",
        animal: ""
      }}
      onSubmit={values => {
        this.props.nextStep(values);
      }}
      render={({ values, isSubmitting }) => (
        <Form>
          <Field
            name="email"
            type="email"
            value={values.email}
            component={TextField}
            variant="outlined"
            validate={this.validateEmptyName}
          />
          <Field
            name="animal"
            value={values.animal}
            component={TextField}
            variant="outlined"
          />

          <button type="submit">Submit</button> …
Run Code Online (Sandbox Code Playgroud)

reactjs formik

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

无法在java中设置线程的名称

我正在学习Java中的Thread并且有一个像这样的小程序.我创建一个线程并使用它来创建另一个线程.但是我无法更改第二个线程的名称.任何人都可以解释为什么会这样吗?另外,Thread.sleep(100)表示主线程将休眠100毫秒是否正确.谢谢.

class Thread1 extends Thread{
   public void run() {      
      for(int i=0;i<5;i++){
        System.out.println(getName()+" is running. Time is "+i);
      }
   }
}

public class Program{   
    public static void main(String[] args) throws InterruptedException {        
       Thread t1 = new Thread1();
       t1.setName("Thread 1");
       Thread t2 = new Thread(t1);
       t2.setName("Thread 2");
       t1.start();
       Thread.sleep(100);       
       t2.start();      
    }       
}
Run Code Online (Sandbox Code Playgroud)

该计划的结果如下:

Thread 1 is running. Time is 0
Thread 1 is running. Time is 1
Thread 1 is running. Time is 0
Thread 1 is running. Time is 1
Run Code Online (Sandbox Code Playgroud)

编辑:如果我将getName()更改为Thread.currentThread().getName(),那么一切都按预期工作.它们之间有什么区别?

java multithreading

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

标签 统计

formik ×1

java ×1

multithreading ×1

reactjs ×1