hooks中ant design initialValues shouldUpdate Drawer 搭配使用

注意,如果form中使用了preserve,输入框有初始值,点击保存时输入框的值会变成空

  <Drawer
      width={720}
      visible={props.visible}
      onClose={() => {
        props.onClose()
      bodyStyle={{ paddingBottom: 80 }}
      title={ '编辑' }
      destroyOnClose
      footer={
        <div className={styles.drawerFoot}>
          <Button
            onClick={() => {
              props.onClose(), form.resetFields()
            className={styles.drawBtn}
            {'取消'}
          </Button>
          <Button onClick={() => {
            form.validateFields().then((values) => {
              // console.log('表单值', values)
              props.onSubmit(values);
            });
          }} type="primary">
            {'保存'}
          </Button>
        </div>
        name="validate_other"
        form={form}
        {...formItemLayout}
        initialValues={isUpdate ? selectedInfo : { ['openType']: 'default' }}
        <Form.Item
          label={'打开方式'}
          name="openMode"
          rules={[{ required: true, message: '请输入打开方式' }]}
          <Select placeholder="请选择一个打开方式" allowClear>
            <Option value={'01'}>链接打开</Option>
            <Option value={'02'}>客户端</Option>
            <Option value={'03'}>非结构化</Option>
            <Option value={'04'}>FTL模板报告</Option>
          </Select>
        </Form.Item>
        <Form.Item
          noStyle
          shouldUpdate={(prevValues, currentValues) => prevValues.openMode !== currentValues.openMode}
          {({ getFieldValue }) => {
            return getFieldValue('openMode') === '01' ? (
              <Form.Item
                label={'打开途径'}
                name="openType"
                rules={[{ required: true, message: '请输入打开途径' }]}
                <Radio.Group>
                  <Radio value={'iframe'}>Iframe</Radio>
                  <Radio value={'ie'}>IE</Radio>
                  <Radio value={'default'}>默认</Radio>
                </Radio.Group>
              </Form.Item>
            ) : null;
        </Form.Item>
      </Form>
    </Drawer>
                    这里写自定义目录标题hooks中ant design  initialValues shouldUpdate Drawer 搭配使用代码块hooks中ant design  initialValues shouldUpdate Drawer 搭配使用注意,如果form中使用了preserve,输入框有初始值,点击保存时输入框的值会变成空代码块  &lt;Drawer      width={720}      visible={props.visible}      onClose={() =
当前功能:
 Ant Design版本4.10,包含以下组件:表格,行,列,列,弹出式确认,图标,版式,弹出式通知
带钩子的React 17(useState和useContext)
 使用Immer和useImmerReducer挂钩进行状态管理
添加,删除和完成待办事项
蚂蚁设计过滤器功能-隐藏完整的待办事项
用于日期选择的Ant Design DatePicker
 UUID用于唯一的React密钥标识符
表的分页(多页)
 支持IE11的Polyfills(仅在生产)
 移动设备的响应式布局
DevOps与CircleCI单元测试的集成
SonarGate云代码质量测试
				
 在做需求的时候,有一个场景是表单根据后端返回的数据重新渲染,本来以为只要在render的时候state的值发生了改变,表单里的值就会发生变化,但是后来发现不是这样的,state值是刷新了,但是表单的数据并没有更新,而其他直接填充的值都会更新。后来发现是因为initialValue只会在第一次进行渲染,后续数据的更新并不会造成重新渲染。  查看了antd的文档后,发现可以通过setFieldsV...
name="isAllowPrepay" rules={[{ required: true, message: '请选择是否允许提还' }]} getValueFromEvent={(e) => { const { target } = e; const { value } = target; setAllowPrepay(val
我出现的问题:例如在编辑活动关联红包的时候,需求是select显示的是红包名称,但是表单提交的时候是红包ID:设置默认值的initialValue为Id的时候,会出现显示是id (需要的是显示名称);如果设置默认值initialValue是名称,那么下一步操作会出现报错 但是我还有一种情况:某个活动关联的红包被删除了,在Select的可供选项redPackets没有这个红包的时候,显示的会是红...
初步理解 : initialValue就是所谓的defaultValue,只会在第一次赋值的时候改变,却又有一些不同,因为 initialValue又会因其他改动而改变。 然而当获取的数据重新上来要渲染的时候 ,initialValue的值却又不改变,所以 让人觉得很是捉摸不透。 解决:````this.props.form.resetFields();``` 例:如果第一步操作执行的是修改操作,...
项目需要将Form表单赋值初始值以供修改,但是我用useState设置了选的值然后initialValues赋值却发现,点击出来显示的始终是上一次点击的值,然后用p标签重新显示这个state,发现又是最新的。 看了一下这篇https://blog.csdn.net/hl971115/article/details/104564923。 用useEffect也不起作用。我就放弃了使用initialValues,然后使用form.setFieldsValue()直接给form设置值。这下就行了
Woocommerce是一个广泛使用的WordPress电子商务插件,它允许您在WordPress网站上创建一个完整的在线商店。Woocommerce的主题提供了一系列的钩子(hooks),使得您可以自定义并且在不更改主题文件的情况下,将自己的代码添加到主题的各个位置。 在Woocommerce主题,有两种类型的钩子:Action和Filter。Action是一种允许您在特定事件发生时运行自定义代码的钩子,而Filter允许您在特定位置更改主题的内容。下面是一些常见的Woocommerce主题钩子: 1. woocommerce_before_main_content:在主要内容之前运行代码的Action钩子。 2. woocommerce_before_shop_loop:在产品列表页面(Shop页面)之前运行代码的Action钩子。 3. woocommerce_after_shop_loop:在产品列表页面之后运行代码的Action钩子。 4. woocommerce_before_single_product:在单个产品页面之前运行代码的Action钩子。 5. woocommerce_after_single_product_summary:在单个产品页面之后运行代码的Action钩子。 6. woocommerce_product_tabs:允许您在单个产品页面添加自定义标签的Filter钩子。 7. woocommerce_single_product_summary:允许您在单个产品页面更改产品摘要信息的Filter钩子。 您可以使用这些钩子来添加自定义功能或者修改Woocommerce主题的某些元素。要使用这些钩子,您需要在functions.php文件添加自己的代码,例如: function my_custom_function() { echo 'Hello World'; add_action( 'woocommerce_before_main_content', 'my_custom_function' ); 这个代码将在“woocommerce_before_main_content”钩子运行时输出“Hello World”。