Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(core): deconstruct field cache value write back #4119

Conversation

panyu97py
Copy link

Before submitting a pull request, please make sure the following is done...

  • Ensure the pull request title and commit message follow the Commit Specific in English.
  • Fork the repo and create your branch from master or formily_next.
  • If you've added code that should be tested, add tests!
  • If you've changed APIs, update the documentation.
  • Ensure the test suite passes (npm test).
  • Make sure your code lints (npm run lint) - we've done our best to make sure these rules match our internal linting guidelines.

Please do not delete the above content


What have you changed?

修复在使用 JsonSchema 解构 key 时,数据回写为空的问题

//  表单实例
const form = createForm();

const schema = {
  a: {
    type: 'number',
    title: 'demo',
    'x-decorator': FormItem,
    'x-component': Radio.Group,
    'x-component-props': {
      options: [
        { label: '是', value: true },
        { label: '否', value: false },
      ],
    },
  },
  '{b,c}': {
    type: 'number',
    title: 'demo',
    'x-decorator': FormItem,
    'x-component': (props) => {
      const { value } = props;
      return (
        <div>
          <div>b:{value.b}</div>
          <div>c:{value.c}</div>
        </div>
      );
    },
    'x-reactions': (field: Field) => {
      const a = field.query('a').value();
      field.visible = Boolean(a);
    },
  },
};

const Demo = () => {
  useEffect(() => {
    setTimeout(()=>form.setValues({ a: true, b: 2, c: 3 }),500)
  }, []);

  return (
    <FormProvider form={form}>
      <SchemaField schema={billingInfoSchema} />
    </FormProvider>
  );
};

@CLAassistant
Copy link

CLAassistant commented Mar 25, 2024

CLA assistant check
All committers have signed the CLA.

@janryWang
Copy link
Collaborator

这个修复是个 break change 哈,之前都是基于 undefined 进行判断的,现在改成空值判断,空值其实不稳定的

@janryWang janryWang closed this Jul 16, 2024
@panyu97py
Copy link
Author

panyu97py commented Jul 16, 2024

这个修复是个 break change 哈,之前都是基于 undefined 进行判断的,现在改成空值判断,空值其实不稳定的

解构赋值取值时这里的 value 是空对象,空对象不等于 undefined 会使JsonSchema 解构 key 时,数据回写为空。目前在项目中patch 修复并稳定运行建议使用demo试试

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants