实习日记7(日常项目出现的小问题教训)

44 阅读1分钟
  1. 一个form同时存在一个实例 const form = Form.useFormInstance(); 使用这个可以直接获取父级form表单,而不使用props

  2. onChange就算表单项被禁了,只要它的值变化了,还是一样的会被触发

  3. error一旦发生,是会导致上下文直接截断不执行,这时候不看控制台很难发现问题,哪怕是一些类型转换,所以,ts报错还是要注意一下;

  4. 函数默认值是只有两种情况才会使用默认值,

  • 调用函数时未传递该参数
  • 调用函数时传递的参数值为undefined

如果传递的是空就相当于还是传了,而不会使用默认值;

5.SchemaForm使用的是BetaSchemaForm,这是Ant Design Pro的组件。在BetaSchemaForm中,valuePropName需要在formItemProps中配置,而不是直接在SchemaItem中。

     //失效
     {
            title: '通知',
            dataIndex: 'notify',
            valuePropName: 'checked',
            renderFormItem: () => {
              return (
                  <Switch/>
              );
            },
      }

      //有效
      {
        title: '通知',
        dataIndex: 'notify',
        formItemProps: {
          valuePropName: 'checked',
        },
        renderFormItem: () => {
          return (
              <Switch />
          );
        },
      },

 

6.forceRender强制渲染,即刚开始就渲染,而不是采用延迟渲染,这个的作用一般是为了让一些父组件拿到子组件的信息,比如说,Form表单的值的获取;