antd的form的shouldUpdate执行了validator没有执行

唯见长江天际流
  • 586

a和b的校验都相互依赖,这里用shouldUpdate去做,结果shouldUpdate执行了,对应的validator没有执行。这种应该怎么处理?

  <Form.Item
        noStyle
        shouldUpdate={(pre: any, current: any) => {
          const result = JSON.stringify(pre.a) !== JSON.stringify(current.a)
            || JSON.stringify(pre.b) !== JSON.stringify(current.b);
          console.log('shouldUpdate', result);
          return result;
        }}
      >
        {
          () => (
            <Form.Item name="a" label="a方式" required  rules={[
                        ({ getFieldValue }) => ({
                          validator(_, value) {
                          // 依赖b
                           console.log('validate);
                          },
                        })]}>
             <Radio.Group disabled={disabled}>
                    <Radio value={'ddd'}>ddd</Radio>
                    <Radio value={'xxx'}>xxx</Radio>
                  </Radio.Group>
            </Form.Item>
          )
        }
      </Form.Item>
        <Form.Item
        noStyle
        shouldUpdate={(pre: any, current: any) => {
          const result = JSON.stringify(pre.a) !== JSON.stringify(current.a)
            || JSON.stringify(pre.b) !== JSON.stringify(current.b);
          console.log('shouldUpdate', result);
          return result;
        }}
      >
        {
          () => (
            <Form.Item name="b" label="b方式" required  rules={[
                        ({ getFieldValue }) => ({
                          validator(_, value) {
                          // 依赖a
                           console.log('validate);
                          },
                        })]}>
             <Radio.Group disabled={disabled}>
                    <Radio value={'ddd'}>ddd</Radio>
                    <Radio value={'xxx'}>xxx</Radio>
                  </Radio.Group>
            </Form.Item>
          )
        }
      </Form.Item>
回复
阅读 69
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏